Libraries

require(pacman)
pacman::p_load(tidyverse, janitor, here, DT, gt, phylotools, assertr, readxl, patchwork, reshape2, ggtext, openxlsx, grid, tiff)

Load Data

virus_master_2023 <- read_csv(here("Data/tblastx_master.csv"))

BLAST Summary

library_summary <- virus_master_2023 %>%
  group_by(mosquito_species, sample_number) %>%
  summarise(n = n_distinct(mosquito_species)) %>%
  group_by(mosquito_species) %>%
  summarise(n = n()) %>%
  adorn_totals()

years <- virus_master_2023 %>% 
  group_by(collection_year, virus_name) %>% 
  summarise(count = n_distinct(virus_name, collection_year)) %>% 
  pivot_wider(names_from = collection_year, values_from = count, values_fill = 0)

virus_lineage <- virus_master_2023 %>% 
  group_by(virus_name, viral_family, genome) %>% 
  summarise(n = n_distinct(virus_name, viral_family, genome)) %>% 
  select(-"n")

virus_master_2023 %>% 
  group_by(virus_name) %>% 
  summarise(n_contigs = n(),
            mean_cov = mean(coverage),
            min_cov = min(coverage),
            max_cov = max(coverage),
            mean_pid = mean(greatest_identity_percent),
            med_pid = median(greatest_identity_percent),
            min_pid = min(greatest_identity_percent),
            max_pid = max(greatest_identity_percent),
            total_reads = sum(total_read_count)) %>% 
  left_join(virus_lineage, by = "virus_name") %>% 
  group_by(genome, viral_family) %>% 
  arrange(genome, viral_family) %>% 
  relocate(total_reads, .after = "n_contigs") %>% 
  mutate(across(.cols = "virus_name",
                ~case_when(grepl("Manitoba", virus_name) & !grepl("Manitoba virus", virus_name) ~ 
                             paste0(., "*"),
                           TRUE ~ .))) %>% 
  gt() %>% 
  fmt_number(columns = mean_cov:max_pid,
             decimals = 2) %>% 
  fmt_number(columns = total_reads,
             sep_mark = ",",
             decimals = 0) %>% 
  tab_spanner(label = "Coverage Depth", columns = c(mean_cov, min_cov, max_cov)) %>% 
  tab_spanner(label = "aa Percent Identity", columns = c(mean_pid, min_pid, max_pid, med_pid)) %>% 
  cols_label(
    n_contigs = "Contigs",
    total_reads = "Reads",
    mean_cov = "Mean", min_cov = "Min", max_cov = "Max",
    mean_pid = "Mean", min_pid = "Min", max_pid = "Max", med_pid = "Median",
    virus_name = "Virus") %>% 
  tab_style(
    style = list(cell_fill(color = "grey"),
                 cell_text(weight = "bold")),
    locations = cells_row_groups(groups = everything())
  ) %>% 
  tab_style(
    style = cell_borders(
      sides = "left",
      weight = px(2),
      color = "grey"),
    locations = cells_body(
      columns = c(mean_cov, mean_pid, "n_contigs")
    )
  ) %>% 
  data_color(
    columns = mean_pid:max_pid,
    palette = "viridis"
    
  ) %>% 
  tab_footnote("* Putatively novel virus.")
Virus Contigs Reads Coverage Depth aa Percent Identity
Mean Min Max Mean Min Max Median
+ssRNA - Dicistroviridae
Black queen cell virus 2 1,613 17.00 11.15 22.85 100.00 100.00 100.00 100.00
Manitoba dicistro-like virus 1* 1 10,688 149.27 149.27 149.27 82.61 82.61 82.61 82.61
Soybean thrips dicistrovirus 11 11,192 17.32 10.11 29.01 100.00 100.00 100.00 100.00
+ssRNA - Flaviviridae
Inari jingmenvirus 1 139 11.02 11.02 11.02 100.00 100.00 100.00 100.00
Placeda virus 169 106,682 90.37 10.02 1,114.82 97.87 86.24 100.00 98.55
+ssRNA - Iflaviridae
Cafluga virus 2 976 20.82 19.41 22.24 99.77 99.55 100.00 99.77
Culex Iflavi-like virus 4 23 13,815 22.81 10.65 58.90 99.81 96.20 100.00 100.00
Culex iflavilike virus 3 183 266,451 284.65 18.65 1,269.06 99.49 94.19 100.00 100.00
Hanko iflavirus 1 30 2,938,402 3,394.01 10.99 19,795.35 97.49 93.45 100.00 97.30
Hanko iflavirus 2 29 29,456 86.71 16.30 242.52 88.70 67.08 100.00 89.58
Hubei arthropod virus 1 1 352 11.95 11.95 11.95 100.00 100.00 100.00 100.00
Manitoba iflavirus 1* 25 39,865 28.41 10.35 266.71 93.47 89.14 100.00 93.38
Manitoba picorna-like virus 1* 86 72,405 64.99 10.27 207.10 87.73 73.93 100.00 87.80
Soybean thrips iflavirus 4 1 636 16.60 16.60 16.60 100.00 100.00 100.00 100.00
Yongsan picorna-like virus 2 4 58,132 165.26 34.98 535.91 100.00 100.00 100.00 100.00
+ssRNA - Luteoviridae
Marma virus 23 39,344 70.95 11.62 129.64 100.00 100.00 100.00 100.00
+ssRNA - Narnaviridae
Culex narnavirus 1 1 63 12.07 12.07 12.07 100.00 100.00 100.00 100.00
Manitoba narnavirus 1* 2 391 18.77 13.02 24.52 80.59 80.29 80.89 80.59
+ssRNA - Negevirus
Cordoba virus 14 135,594 548.17 17.51 2,225.85 97.10 93.75 100.00 97.23
Manitoba mononega-like virus 1* 3 12,701 45.19 33.85 59.07 80.60 73.21 90.00 78.57
Manitoba mononega-like virus 2* 3 6,079 37.12 18.89 65.64 98.77 96.30 100.00 100.00
Mekrijarvi Negevirus 6 167,549 294.01 30.28 1,262.63 94.13 90.78 100.00 93.40
Serbia mononega-like virus 1 1 494 20.03 20.03 20.03 75.00 75.00 75.00 75.00
Utsjoki negevirus 3 2 416 21.12 18.00 24.24 99.02 99.01 99.03 99.02
+ssRNA - Nodaviridae
Hubei noda-like virus 12 2 4,244 54.47 23.60 85.34 95.83 91.67 100.00 95.83
+ssRNA - Rhabdoviridae
Manitoba Rhabdovirus 1* 37 32,534 34.99 10.21 120.41 83.22 69.42 93.01 83.33
+ssRNA - Tombusviridae
Des Moines River virus 4 35,117 486.06 34.94 897.17 100.00 100.00 100.00 100.00
Hubei mosquito virus 4 6 2,919 16.68 10.02 39.59 96.50 92.65 100.00 95.70
Manitoba tombus-like virus 1* 6 28,922 224.21 74.52 557.41 79.73 72.73 100.00 76.56
+ssRNA - Tymoviridae
Hubei macula-like virus 3 8 530,385 1,092.52 11.15 7,749.86 96.13 92.15 100.00 96.63
Manitoba tymo-like virus 1* 1 1,482 23.67 23.67 23.67 66.79 66.79 66.79 66.79
+ssRNA - Virgaviridae
Hubei virga-like virus 2 6 505 13.26 10.94 15.50 99.04 96.27 100.00 100.00
Manitoba virgavirus 1* 1 186 11.06 11.06 11.06 83.83 83.83 83.83 83.83
-ssRNA - Chuviridae
Chuvirus 39 22,130 28.00 10.17 214.52 97.49 89.66 100.00 97.02
-ssRNA - Culex rhabdovirus
Culex rhabdovirus 2 997 116.26 74.47 158.06 100.00 100.00 100.00 100.00
-ssRNA - Flanders hapavirus
Flanders hapavirus 81 104,235 113.05 10.00 686.87 99.90 95.96 100.00 100.00
-ssRNA - Orthomyxoviridae
Astopletus virus 29 5,975 32.63 10.91 107.95 99.06 95.77 100.00 100.00
Wuhan mosquito virus 6 101 133,667 176.35 12.58 641.58 99.76 97.69 100.00 100.00
-ssRNA - Peribunyaviridae
Culex bunyavirus 2 19 6,255 23.92 10.28 49.84 100.00 100.00 100.00 100.00
-ssRNA - Rhabdoviridae
Canya virus 14 3,766 24.71 11.30 66.33 87.32 66.04 100.00 85.07
Culex Rhabdo-like virus 4 807 14.68 10.87 23.28 100.00 100.00 100.00 100.00
Elisy virus 21 3,849 19.29 10.10 40.69 99.27 96.41 100.00 100.00
Manitoba rhabdovirus 2* 1 2,401 51.70 51.70 51.70 75.00 75.00 75.00 75.00
Manitoba virus 5 1,003 19.71 15.74 24.80 99.76 98.80 100.00 100.00
Merida virus 55 76,697 91.60 11.06 276.87 99.86 97.14 100.00 100.00
dsDNA - Iridoviridae
Manitoba iridescent virus 1* 1 137 16.99 16.99 16.99 78.74 78.74 78.74 78.74
dsRNA - Birnaviridae
Ballard Lake virus 48 682,541 431.81 10.84 2,260.59 99.86 93.27 100.00 100.00
dsRNA - Partitiviridae
Partitivirus-like Culex mosquito virus 12 4,477 23.28 11.49 45.83 100.00 100.00 100.00 100.00
dsRNA - Totiviridae
Gouley virus 3 117 12.22 10.42 14.89 95.04 92.86 97.67 94.59
Manitoba toti-like virus 1* 5 13,869 39.82 11.18 127.46 69.92 67.43 73.11 68.10
Manitoba toti-like virus 2* 1 418 13.45 13.45 13.45 60.24 60.24 60.24 60.24
Manitoba toti-like virus 3* 4 1,772 15.11 11.20 18.40 73.53 72.22 74.90 73.50
Manitoba toti-like virus 4* 1 702 14.41 14.41 14.41 89.07 89.07 89.07 89.07
Snelk virus 4 496 41.15 23.15 67.61 100.00 100.00 100.00 100.00
ssDNA - Parvoviridae
Aedes albopictus densovirus 4 14,051 139.82 94.27 203.18 97.46 89.86 100.00 100.00
Aedes vexans densovirus isolate 1 594 17.69 17.69 17.69 100.00 100.00 100.00 100.00
Culex densovirus 8 6,035 127.22 11.65 490.03 99.56 97.71 100.00 100.00
MAG: Grus japonensis parvoviridae sp 1 366 60.82 60.82 60.82 100.00 100.00 100.00 100.00
* Putatively novel virus.

Virus Detections by Species

virus_master_2023 %>% 
  group_by(mosquito_species, virus_name) %>% 
  summarise(count = n_distinct(virus_name, sample_number)) %>% 
  pivot_wider(names_from = mosquito_species, values_from = count, values_fill = 0) %>% 
  mutate("Aedes canadensis \n Total: 1" = (`Aedes canadensis` / 1) * 100,
         "Aedes vexans \n Total: 19" = (`Aedes vexans` / 19) * 100,
         "Anopheles earlei \n Total: 1" = (`Anopheles earlei` / 1) * 100,
         "Coquillettidia perturbans \n Total: 6" = (`Coquillettidia perturbans` / 6) * 100,
         "Culex tarsalis \n Total: 11" = (`Culex tarsalis` / 11) * 100,
         "Ochlerotatus dorsalis \n Total: 5" = (`Ochlerotatus dorsalis` / 5) * 100,
         "Ochlerotatus flavescens \n Total: 1" = (`Ochlerotatus flavescens` / 1) * 100,
         "Ochlerotatus triseriatus \n Total: 1" = (`Ochlerotatus triseriatus` / 1) * 100,
  ) %>% select(-`Aedes canadensis`:-`Ochlerotatus triseriatus`) %>% 
  left_join(virus_lineage, by = "virus_name") %>% 
   left_join(years, by = "virus_name") %>% 
   relocate("2020", .after = "virus_name") %>% relocate("2021", .after = "2020") %>% 
   mutate(across(.cols = c("2020", "2021"),
                 ~case_when(. == "1" ~ TRUE,
                            . == "0" ~ FALSE))) %>% 
   mutate(across(.cols = "virus_name",
                 ~case_when(grepl("Manitoba", virus_name) & !grepl("Manitoba virus", virus_name) ~ 
                              paste0(., "*"),
                            TRUE ~ .))) %>% 
  group_by(genome, viral_family) %>% 
  arrange(genome, viral_family) %>% 
  gt() %>% 
  fmt_number(columns = "Aedes canadensis \n Total: 1":"Ochlerotatus triseriatus \n Total: 1",
             decimals = 2) %>% 
  tab_spanner(label = "Percent of Libraries Detected by Species", 
              columns = c("Aedes canadensis \n Total: 1":"Ochlerotatus triseriatus \n Total: 1")) %>% 
   tab_spanner(label = html("Years Detected"),
               columns = c("2020":"2021")) %>% 
  cols_label(
    "Aedes canadensis \n Total: 1" = html("<em>Aedes canadensis</em> <br> Total: 1"),
    "Aedes vexans \n Total: 19" = html("<em>Aedes vexans</em> <br> Total: 19"),
    "Anopheles earlei \n Total: 1" = html("<em>Anopheles earlei</em> <br> Total: 1"),
    "Coquillettidia perturbans \n Total: 6" = html("<em>Coquillettidia perturbans</em> <br> Total: 6"),
    "Culex tarsalis \n Total: 11" = html("<em>Culex tarsalis</em> <br> Total: 11"),
    "Ochlerotatus dorsalis \n Total: 5" = html("<em>Ochlerotatus dorsalis</em> <br> Total: 5"),
    "Ochlerotatus flavescens \n Total: 1" = html("<em>Ochlerotatus flavescens</em> <br> Total: 1"),
    "Ochlerotatus triseriatus \n Total: 1" = html("<em>Ochlerotatus triseriatus</em> <br> Total: 1"),
    virus_name = "Virus") %>% 
   cols_align(align = "center",
              columns = "2020":"Ochlerotatus triseriatus \n Total: 1") %>% 
   tab_style(
     style = list(cell_fill(color = "grey"),
                  cell_text(weight = "bold")),
     locations = cells_row_groups(groups = everything())) %>% 
   data_color(columns = `Aedes canadensis \n Total: 1`:last_col(),
              palette = "viridis", 
              direction = "row") %>% 
   tab_style(
     style = cell_borders(
       sides = "left",
       weight = px(2),
       color = "black"),
     locations = cells_body(
       columns = c("Aedes canadensis \n Total: 1"))) %>% 
  tab_footnote("* Putatively novel virus") %>% 
  tab_options(., container.width = 1500)
Virus Years Detected Percent of Libraries Detected by Species
2020 2021 Aedes canadensis
Total: 1
Aedes vexans
Total: 19
Anopheles earlei
Total: 1
Coquillettidia perturbans
Total: 6
Culex tarsalis
Total: 11
Ochlerotatus dorsalis
Total: 5
Ochlerotatus flavescens
Total: 1
Ochlerotatus triseriatus
Total: 1
+ssRNA - Dicistroviridae
Black queen cell virus TRUE FALSE 0.00 5.26 0.00 0.00 0.00 0.00 0.00 0.00
Soybean thrips dicistrovirus TRUE TRUE 0.00 15.79 0.00 0.00 45.45 20.00 0.00 0.00
Manitoba dicistro-like virus 1* TRUE FALSE 0.00 0.00 0.00 0.00 9.09 0.00 0.00 0.00
+ssRNA - Flaviviridae
Inari jingmenvirus TRUE FALSE 0.00 5.26 0.00 0.00 0.00 0.00 0.00 0.00
Placeda virus TRUE TRUE 0.00 10.53 0.00 0.00 100.00 0.00 0.00 0.00
+ssRNA - Iflaviridae
Hanko iflavirus 1 TRUE TRUE 0.00 21.05 0.00 16.67 9.09 100.00 100.00 0.00
Hanko iflavirus 2 TRUE TRUE 0.00 78.95 0.00 16.67 0.00 40.00 0.00 0.00
Hubei arthropod virus 1 FALSE TRUE 0.00 5.26 0.00 0.00 0.00 0.00 0.00 0.00
Manitoba iflavirus 1* TRUE TRUE 0.00 36.84 0.00 33.33 27.27 80.00 100.00 0.00
Manitoba picorna-like virus 1* TRUE TRUE 0.00 100.00 0.00 0.00 0.00 60.00 0.00 0.00
Cafluga virus TRUE FALSE 0.00 0.00 0.00 16.67 0.00 20.00 0.00 0.00
Soybean thrips iflavirus 4 TRUE FALSE 0.00 0.00 0.00 16.67 0.00 0.00 0.00 0.00
Culex Iflavi-like virus 4 TRUE TRUE 0.00 0.00 0.00 0.00 63.64 0.00 0.00 0.00
Culex iflavilike virus 3 TRUE TRUE 0.00 0.00 0.00 0.00 100.00 0.00 0.00 0.00
Yongsan picorna-like virus 2 TRUE TRUE 0.00 0.00 0.00 0.00 27.27 0.00 0.00 0.00
+ssRNA - Luteoviridae
Marma virus TRUE TRUE 0.00 0.00 0.00 16.67 100.00 0.00 0.00 0.00
+ssRNA - Narnaviridae
Manitoba narnavirus 1* FALSE TRUE 0.00 0.00 100.00 0.00 0.00 0.00 0.00 0.00
Culex narnavirus 1 TRUE FALSE 0.00 0.00 0.00 0.00 9.09 0.00 0.00 0.00
+ssRNA - Negevirus
Manitoba mononega-like virus 1* TRUE TRUE 100.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
Serbia mononega-like virus 1 FALSE TRUE 100.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Cordoba virus FALSE TRUE 0.00 15.79 0.00 0.00 0.00 0.00 0.00 0.00
Manitoba mononega-like virus 2* TRUE TRUE 0.00 15.79 0.00 0.00 0.00 0.00 0.00 0.00
Mekrijarvi Negevirus TRUE TRUE 0.00 15.79 0.00 0.00 0.00 60.00 0.00 0.00
Utsjoki negevirus 3 TRUE FALSE 0.00 10.53 0.00 0.00 0.00 0.00 0.00 0.00
+ssRNA - Nodaviridae
Hubei noda-like virus 12 FALSE TRUE 0.00 0.00 0.00 16.67 9.09 0.00 0.00 0.00
+ssRNA - Rhabdoviridae
Manitoba Rhabdovirus 1* TRUE TRUE 0.00 100.00 0.00 0.00 0.00 20.00 0.00 0.00
+ssRNA - Tombusviridae
Des Moines River virus TRUE FALSE 0.00 5.26 0.00 0.00 27.27 0.00 0.00 0.00
Hubei mosquito virus 4 TRUE TRUE 0.00 0.00 0.00 0.00 54.55 0.00 0.00 0.00
Manitoba tombus-like virus 1* TRUE TRUE 0.00 0.00 0.00 0.00 45.45 0.00 0.00 0.00
+ssRNA - Tymoviridae
Hubei macula-like virus 3 TRUE TRUE 0.00 21.05 0.00 0.00 0.00 20.00 0.00 0.00
Manitoba tymo-like virus 1* FALSE TRUE 0.00 5.26 0.00 0.00 0.00 0.00 0.00 0.00
+ssRNA - Virgaviridae
Hubei virga-like virus 2 TRUE TRUE 0.00 0.00 0.00 0.00 36.36 0.00 0.00 0.00
Manitoba virgavirus 1* TRUE FALSE 0.00 0.00 0.00 0.00 0.00 20.00 0.00 0.00
-ssRNA - Chuviridae
Chuvirus TRUE TRUE 0.00 89.47 0.00 0.00 9.09 60.00 0.00 0.00
-ssRNA - Culex rhabdovirus
Culex rhabdovirus FALSE TRUE 0.00 0.00 0.00 0.00 18.18 0.00 0.00 0.00
-ssRNA - Flanders hapavirus
Flanders hapavirus TRUE TRUE 0.00 15.79 0.00 0.00 90.91 0.00 0.00 0.00
-ssRNA - Orthomyxoviridae
Wuhan mosquito virus 6 TRUE TRUE 0.00 10.53 0.00 16.67 100.00 0.00 0.00 0.00
Astopletus virus TRUE TRUE 0.00 0.00 0.00 0.00 100.00 0.00 0.00 0.00
-ssRNA - Peribunyaviridae
Culex bunyavirus 2 TRUE TRUE 0.00 0.00 0.00 0.00 100.00 0.00 0.00 0.00
-ssRNA - Rhabdoviridae
Canya virus TRUE TRUE 100.00 0.00 0.00 0.00 90.91 0.00 0.00 0.00
Manitoba rhabdovirus 2* TRUE FALSE 0.00 5.26 0.00 0.00 0.00 0.00 0.00 0.00
Culex Rhabdo-like virus TRUE TRUE 0.00 0.00 0.00 0.00 27.27 0.00 0.00 0.00
Elisy virus TRUE TRUE 0.00 0.00 0.00 0.00 45.45 0.00 0.00 0.00
Manitoba virus FALSE TRUE 0.00 0.00 0.00 0.00 9.09 0.00 0.00 0.00
Merida virus TRUE TRUE 0.00 0.00 0.00 0.00 100.00 0.00 0.00 0.00
dsDNA - Iridoviridae
Manitoba iridescent virus 1* FALSE TRUE 0.00 0.00 0.00 16.67 0.00 0.00 0.00 0.00
dsRNA - Birnaviridae
Ballard Lake virus TRUE TRUE 0.00 100.00 0.00 66.67 18.18 20.00 0.00 0.00
dsRNA - Partitiviridae
Partitivirus-like Culex mosquito virus TRUE TRUE 0.00 0.00 0.00 0.00 100.00 0.00 0.00 0.00
dsRNA - Totiviridae
Manitoba toti-like virus 2* FALSE TRUE 100.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Manitoba toti-like virus 1* TRUE TRUE 0.00 10.53 0.00 0.00 27.27 0.00 0.00 0.00
Gouley virus TRUE FALSE 0.00 0.00 0.00 0.00 27.27 0.00 0.00 0.00
Snelk virus TRUE TRUE 0.00 0.00 0.00 0.00 36.36 0.00 0.00 0.00
Manitoba toti-like virus 3* TRUE FALSE 0.00 0.00 0.00 0.00 0.00 80.00 0.00 0.00
Manitoba toti-like virus 4* TRUE FALSE 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
ssDNA - Parvoviridae
Aedes vexans densovirus isolate FALSE TRUE 0.00 5.26 0.00 0.00 0.00 0.00 0.00 0.00
Culex densovirus TRUE TRUE 0.00 5.26 0.00 66.67 9.09 0.00 0.00 0.00
Aedes albopictus densovirus FALSE TRUE 0.00 0.00 0.00 33.33 9.09 0.00 0.00 0.00
MAG: Grus japonensis parvoviridae sp FALSE TRUE 0.00 0.00 0.00 16.67 0.00 0.00 0.00 0.00
* Putatively novel virus

Virus Profiles

Below are summaries for each virus detected.

virus_profile_table <- function(virus) {

 virus_table <<-  virus_master_2023 %>% 
  filter(virus_name == virus) %>% 
  #select(-"contig_sequences") %>% 
  summarise(
    num_species = n_distinct(mosquito_species),
    num_contig = n(),
    longest_contig = max(contig_length),
    shortest_contig = min(contig_length),
    avg_nt_id = mean(greatest_identity_percent),
    max_nt_id = max(greatest_identity_percent),
    min_nt_id = min(greatest_identity_percent)
    
  ) %>% 
  gt() %>% 
  cols_label(
    longest_contig = "Max Contig",
    shortest_contig = "Min Contig",
    avg_nt_id = "Average aa Id",
    max_nt_id = "Max aa Id",
    min_nt_id = "Min aa Id",
    num_contig = "n Contigs",
    num_species = "n Species"
  ) %>% 
  tab_header(
    title = paste0("Summary Stats for", " ", virus)
  ) %>% 
    fmt_number(
      columns = 4:last_col(),
      decimals = 2
    )

}
# Arrange df for virus reporting
virus_master_2023 <<- virus_master_2023 %>% 
  mutate(across(.cols = "virus_name",
                ~case_when(grepl("Manitoba", virus_name) & !grepl("Manitoba virus", virus_name) ~ 
                             paste0(., "*"),
                           TRUE ~ .))) %>% 
  arrange(desc(genome)) %>% 
  drop_na(virus_name)

for(virus in unique(virus_master_2023$virus_name)) {

  genome <- virus_master_2023 %>% 
    arrange(desc(genome)) %>% 
    drop_na(virus_name) %>%  
    filter(virus_name == virus) %>% 
    pull(genome) %>% 
    head(1)
  
  genome <- paste0(genome)
  
  family <- virus_master_2023 %>% 
    filter(virus_name == virus) %>% 
    pull(viral_family) %>% 
    head(1)
  
  family <- paste0(family)

  sample_detections <- virus_master_2023 %>% 
    filter(virus_name == virus) %>% 
    distinct(sample_number)
  sample_detections <- paste0(nrow(sample_detections))
  
  
  cat('\n\n#', virus, '\n\n')
  
  cat('\n\n>', virus, 'has a ', genome, 'genome and is a member of the family', family, 'and was detected in', sample_detections, 'sample(s).', 'See summary figures and tables below.',  '\n\n')
  
print(suppressMessages(
  virus_master_2023 %>% 
    filter(virus_name == virus) %>% 
    select(-"contig_sequence") %>% 
    group_by(mosquito_species, collection_year, location_pool) %>% 
    summarise(n = n_distinct(sample_number)) %>% 
    ggplot(aes(x = mosquito_species, y = n, fill = location_pool)) +
    geom_col() +
    facet_grid(. ~ collection_year) +
    scale_fill_viridis_d("Location", option = "magma") +
    theme_bw() +
    labs(title = paste0("Number of Virus Detections"),
       subtitle = paste0("For ", virus, " by Year, Species and Location")) +
    theme(plot.title = element_text(size = 16, face = "bold"),
        axis.title.x = element_blank(),
        axis.text.x = element_text(angle = 45, vjust = 0.5))
  ))
  
  cat('\n\n###', 'Years {.unlisted .unnumbered}', '\n\n')

  print(htmltools::tagList(
    virus_master_2023 %>% 
      filter(virus_name == virus) %>% 
      group_by(collection_year) %>% 
      summarise(n = n_distinct(sample_number)) %>% 
      gt() %>% 
      cols_label(collection_year = "Year(s) Detected")
    ))
  
  cat('\n\n###', 'Locations {.unlisted .unnumbered}', '\n\n')
  
    print(htmltools::tagList(
    virus_master_2023 %>% 
      filter(virus_name == virus) %>% 
      group_by(location_pool) %>% 
      summarise(n = n_distinct(sample_number)) %>% 
      gt() %>% 
      cols_label(location_pool = "Location(s) Detected")
    ))
    
    cat('\n\n###', 'Mosquito Species {.unlisted .unnumbered}', '\n\n')
  
    print(htmltools::tagList(
    virus_master_2023 %>% 
      filter(virus_name == virus) %>% 
      group_by(mosquito_species) %>% 
      summarise(n = n_distinct(sample_number)) %>% 
      gt() %>% 
      cols_label(mosquito_species = "Mosquito Hosts")
    ))
    
    cat('\n\n###', 'Contig Summary {.unlisted .unnumbered}', '\n\n')

  virus_profile_table(virus)
  
  print(htmltools::tagList(virus_table))
  
  cat('\n\n###', 'aa Identity Summary {.unlisted .unnumbered}', '\n\n')
  
  print(suppressMessages(
  virus_master_2023 %>% 
    filter(virus_name == virus) %>% 
    select(-"contig_sequence") %>% 
    ggplot(aes(x = greatest_identity_percent)) +
    geom_histogram(aes(fill = greatest_identity_percent < 90)) +
    geom_vline(xintercept = 90, linetype = "dotted", colour = "firebrick") +
    theme_bw() +
    labs(title = paste0("aa Identity"),
       subtitle = paste0("For ", virus),
       x = "aa Identity", 
       y = "Number of Contigs") +
    theme(plot.title = element_text(size = 16, face = "bold"),
        axis.title.x = element_blank(),
        axis.text.x = element_text(angle = 45, vjust = 0.5)) +
    theme(legend.position = "none")
  ))
  
}

Culex densovirus

Culex densovirus has a ssDNA genome and is a member of the family Parvoviridae and was detected in 6 sample(s). See summary figures and tables below.

Years

Year(s) Detected n
2020 3
2021 3

Locations

Location(s) Detected n
Cypress River 3
Cypress River & Carberry 1
Shoal Lake 1
Western MB 1

Mosquito Species

Mosquito Hosts n
Aedes vexans 1
Coquillettidia perturbans 4
Culex tarsalis 1

Contig Summary

Summary Stats for Culex densovirus
n Species n Contigs Max Contig Min Contig Average aa Id Max aa Id Min aa Id
3 8 1697 393.00 99.56 100.00 97.71

aa Identity Summary

Aedes albopictus densovirus

Aedes albopictus densovirus has a ssDNA genome and is a member of the family Parvoviridae and was detected in 3 sample(s). See summary figures and tables below.

Years

Year(s) Detected n
2021 3

Locations

Location(s) Detected n
Cypress River 2
Virden 1

Mosquito Species

Mosquito Hosts n
Coquillettidia perturbans 2
Culex tarsalis 1

Contig Summary

Summary Stats for Aedes albopictus densovirus
n Species n Contigs Max Contig Min Contig Average aa Id Max aa Id Min aa Id
2 4 3355 323.00 97.46 100.00 89.86

aa Identity Summary

Aedes vexans densovirus isolate

Aedes vexans densovirus isolate has a ssDNA genome and is a member of the family Parvoviridae and was detected in 1 sample(s). See summary figures and tables below.

Years

Year(s) Detected n
2021 1

Locations

Location(s) Detected n
Cypress River 1

Mosquito Species

Mosquito Hosts n
Aedes vexans 1

Contig Summary

Summary Stats for Aedes vexans densovirus isolate
n Species n Contigs Max Contig Min Contig Average aa Id Max aa Id Min aa Id
1 1 3367 3,367.00 100.00 100.00 100.00

aa Identity Summary

MAG: Grus japonensis parvoviridae sp

MAG: Grus japonensis parvoviridae sp has a ssDNA genome and is a member of the family Parvoviridae and was detected in 1 sample(s). See summary figures and tables below.

Years

Year(s) Detected n
2021 1

Locations

Location(s) Detected n
Cypress River 1

Mosquito Species

Mosquito Hosts n
Coquillettidia perturbans 1

Contig Summary

Summary Stats for MAG: Grus japonensis parvoviridae sp
n Species n Contigs Max Contig Min Contig Average aa Id Max aa Id Min aa Id
1 1 570 570.00 100.00 100.00 100.00

aa Identity Summary

Snelk virus

Snelk virus has a dsRNA genome and is a member of the family Totiviridae and was detected in 4 sample(s). See summary figures and tables below.

Years

Year(s) Detected n
2020 3
2021 1

Locations

Location(s) Detected n
Brandon 1
Carberry 1
Cypress River & Carberry 1
Shoal Lake, Virden & Souris 1

Mosquito Species

Mosquito Hosts n
Culex tarsalis 4

Contig Summary

Summary Stats for Snelk virus
n Species n Contigs Max Contig Min Contig Average aa Id Max aa Id Min aa Id
1 4 295 262.00 100.00 100.00 100.00

aa Identity Summary

Partitivirus-like Culex mosquito virus

Partitivirus-like Culex mosquito virus has a dsRNA genome and is a member of the family Partitiviridae and was detected in 11 sample(s). See summary figures and tables below.

Years

Year(s) Detected n
2020 5
2021 6

Locations

Location(s) Detected n
Boissevain 1
Brandon 3
Carberry 1
Cypress River 1
Cypress River & Carberry 1
Shoal Lake 1
Shoal Lake, Virden & Souris 1
Souris 1
WPG Insect Contol 1

Mosquito Species

Mosquito Hosts n
Culex tarsalis 11

Contig Summary

Summary Stats for Partitivirus-like Culex mosquito virus
n Species n Contigs Max Contig Min Contig Average aa Id Max aa Id Min aa Id
1 12 1751 299.00 100.00 100.00 100.00

aa Identity Summary

Gouley virus

Gouley virus has a dsRNA genome and is a member of the family Totiviridae and was detected in 3 sample(s). See summary figures and tables below.

Years

Year(s) Detected n
2020 3

Locations

Location(s) Detected n
Brandon 1
Cypress River & Carberry 1
Shoal Lake, Virden & Souris 1

Mosquito Species

Mosquito Hosts n
Culex tarsalis 3

Contig Summary

Summary Stats for Gouley virus
n Species n Contigs Max Contig Min Contig Average aa Id Max aa Id Min aa Id
1 3 368 263.00 95.04 97.67 92.86

aa Identity Summary

Manitoba toti-like virus 1*

Manitoba toti-like virus 1* has a dsRNA genome and is a member of the family Totiviridae and was detected in 5 sample(s). See summary figures and tables below.

Years

Year(s) Detected n
2020 2
2021 3

Locations

Location(s) Detected n
Brandon 1
Cypress River 1
Shoal Lake 3

Mosquito Species

Mosquito Hosts n
Aedes vexans 2
Culex tarsalis 3

Contig Summary

Summary Stats for Manitoba toti-like virus 1*
n Species n Contigs Max Contig Min Contig Average aa Id Max aa Id Min aa Id
2 5 8930 2,012.00 69.92 73.11 67.43

aa Identity Summary

Ballard Lake virus

Ballard Lake virus has a dsRNA genome and is a member of the family Birnaviridae and was detected in 26 sample(s). See summary figures and tables below.

Years

Year(s) Detected n
2020 10
2021 16

Locations

Location(s) Detected n
Boissevain 2
Brandon 4
Carberry 1
Cypress River 3
Cypress River & Carberry 1
Killarney 2
Newdale 1
Shoal Lake 5
Souris 2
Virden 2
Virden & Souris 1
WPG Insect Contol 2

Mosquito Species

Mosquito Hosts n
Aedes vexans 19
Coquillettidia perturbans 4
Culex tarsalis 2
Ochlerotatus dorsalis 1

Contig Summary

Summary Stats for Ballard Lake virus
n Species n Contigs Max Contig Min Contig Average aa Id Max aa Id Min aa Id
4 48 3472 707.00 99.86 100.00 93.27

aa Identity Summary

Manitoba toti-like virus 2*

Manitoba toti-like virus 2* has a dsRNA genome and is a member of the family Totiviridae and was detected in 1 sample(s). See summary figures and tables below.

Years

Year(s) Detected n
2021 1

Locations

Location(s) Detected n
Brandon 1

Mosquito Species

Mosquito Hosts n
Aedes canadensis 1

Contig Summary

Summary Stats for Manitoba toti-like virus 2*
n Species n Contigs Max Contig Min Contig Average aa Id Max aa Id Min aa Id
1 1 3123 3,123.00 60.24 60.24 60.24

aa Identity Summary

Manitoba toti-like virus 4*

Manitoba toti-like virus 4* has a dsRNA genome and is a member of the family Totiviridae and was detected in 1 sample(s). See summary figures and tables below.

Years

Year(s) Detected n
2020 1

Locations

Location(s) Detected n
Multiple 1

Mosquito Species

Mosquito Hosts n
Ochlerotatus triseriatus 1

Contig Summary

Summary Stats for Manitoba toti-like virus 4*
n Species n Contigs Max Contig Min Contig Average aa Id Max aa Id Min aa Id
1 1 4909 4,909.00 89.07 89.07 89.07

aa Identity Summary

Manitoba toti-like virus 3*

Manitoba toti-like virus 3* has a dsRNA genome and is a member of the family Totiviridae and was detected in 4 sample(s). See summary figures and tables below.

Years

Year(s) Detected n
2020 4

Locations

Location(s) Detected n
Boissevain & Killarney 1
Brandon 1
Shoal Lake 1
Virden & Souris 1

Mosquito Species

Mosquito Hosts n
Ochlerotatus dorsalis 4

Contig Summary

Summary Stats for Manitoba toti-like virus 3*
n Species n Contigs Max Contig Min Contig Average aa Id Max aa Id Min aa Id
1 4 4626 1,821.00 73.53 74.90 72.22

aa Identity Summary

Manitoba iridescent virus 1*

Manitoba iridescent virus 1* has a dsDNA genome and is a member of the family Iridoviridae and was detected in 1 sample(s). See summary figures and tables below.

Years

Year(s) Detected n
2021 1

Locations

Location(s) Detected n
Cypress River 1

Mosquito Species

Mosquito Hosts n
Coquillettidia perturbans 1

Contig Summary

Summary Stats for Manitoba iridescent virus 1*
n Species n Contigs Max Contig Min Contig Average aa Id Max aa Id Min aa Id
1 1 797 797.00 78.74 78.74 78.74

aa Identity Summary

Chuvirus

Chuvirus has a -ssRNA genome and is a member of the family Chuviridae and was detected in 21 sample(s). See summary figures and tables below.

Years

Year(s) Detected n
2020 9
2021 12

Locations

Location(s) Detected n
Boissevain 2
Boissevain & Killarney 1
Brandon 3
Carberry 2
Cypress River 1
Cypress River & Carberry 1
Killarney 1
Newdale 1
Shoal Lake 6
Souris 1
Virden 1
Virden & Souris 1

Mosquito Species

Mosquito Hosts n
Aedes vexans 17
Culex tarsalis 1
Ochlerotatus dorsalis 3

Contig Summary

Summary Stats for Chuvirus
n Species n Contigs Max Contig Min Contig Average aa Id Max aa Id Min aa Id
3 39 6799 433.00 97.49 100.00 89.66

aa Identity Summary

Merida virus

Merida virus has a -ssRNA genome and is a member of the family Rhabdoviridae and was detected in 11 sample(s). See summary figures and tables below.

Years

Year(s) Detected n
2020 5
2021 6

Locations

Location(s) Detected n
Boissevain 1
Brandon 3
Carberry 1
Cypress River 1
Cypress River & Carberry 1
Shoal Lake 1
Shoal Lake, Virden & Souris 1
Souris 1
WPG Insect Contol 1

Mosquito Species

Mosquito Hosts n
Culex tarsalis 11

Contig Summary

Summary Stats for Merida virus
n Species n Contigs Max Contig Min Contig Average aa Id Max aa Id Min aa Id
1 55 7483 262.00 99.86 100.00 97.14

aa Identity Summary

Wuhan mosquito virus 6

Wuhan mosquito virus 6 has a -ssRNA genome and is a member of the family Orthomyxoviridae and was detected in 14 sample(s). See summary figures and tables below.

Years

Year(s) Detected n
2020 7
2021 7

Locations

Location(s) Detected n
Boissevain 1
Brandon 4
Carberry 1
Cypress River 1
Cypress River & Carberry 1
Shoal Lake 2
Shoal Lake, Virden & Souris 1
Souris 1
WPG Insect Contol 1
Western MB 1

Mosquito Species

Mosquito Hosts n
Aedes vexans 2
Coquillettidia perturbans 1
Culex tarsalis 11

Contig Summary

Summary Stats for Wuhan mosquito virus 6
n Species n Contigs Max Contig Min Contig Average aa Id Max aa Id Min aa Id
3 101 2467 252.00 99.76 100.00 97.69

aa Identity Summary

Canya virus

Canya virus has a -ssRNA genome and is a member of the family Rhabdoviridae and was detected in 11 sample(s). See summary figures and tables below.

Years

Year(s) Detected n
2020 4
2021 7

Locations

Location(s) Detected n
Boissevain 1
Brandon 4
Carberry 1
Cypress River 1
Cypress River & Carberry 1
Shoal Lake 1
Souris 1
WPG Insect Contol 1

Mosquito Species

Mosquito Hosts n
Aedes canadensis 1
Culex tarsalis 10

Contig Summary

Summary Stats for Canya virus
n Species n Contigs Max Contig Min Contig Average aa Id Max aa Id Min aa Id
2 14 6071 522.00 87.32 100.00 66.04

aa Identity Summary

Flanders hapavirus

Flanders hapavirus has a -ssRNA genome and is a member of the family Flanders hapavirus and was detected in 13 sample(s). See summary figures and tables below.

Years

Year(s) Detected n
2020 5
2021 8

Locations

Location(s) Detected n
Boissevain 1
Brandon 3
Carberry 1
Cypress River 1
Cypress River & Carberry 1
Shoal Lake 3
Shoal Lake, Virden & Souris 1
Souris 1
WPG Insect Contol 1

Mosquito Species

Mosquito Hosts n
Aedes vexans 3
Culex tarsalis 10

Contig Summary

Summary Stats for Flanders hapavirus
n Species n Contigs Max Contig Min Contig Average aa Id Max aa Id Min aa Id
2 81 8773 263.00 99.90 100.00 95.96

aa Identity Summary

Astopletus virus

Astopletus virus has a -ssRNA genome and is a member of the family Orthomyxoviridae and was detected in 11 sample(s). See summary figures and tables below.

Years

Year(s) Detected n
2020 5
2021 6

Locations

Location(s) Detected n
Boissevain 1
Brandon 3
Carberry 1
Cypress River 1
Cypress River & Carberry 1
Shoal Lake 1
Shoal Lake, Virden & Souris 1
Souris 1
WPG Insect Contol 1

Mosquito Species

Mosquito Hosts n
Culex tarsalis 11

Contig Summary

Summary Stats for Astopletus virus
n Species n Contigs Max Contig Min Contig Average aa Id Max aa Id Min aa Id
1 29 1044 464.00 99.06 100.00 95.77

aa Identity Summary

Elisy virus

Elisy virus has a -ssRNA genome and is a member of the family Rhabdoviridae and was detected in 5 sample(s). See summary figures and tables below.

Years

Year(s) Detected n
2020 3
2021 2

Locations

Location(s) Detected n
Brandon 3
Cypress River & Carberry 1
Shoal Lake 1

Mosquito Species

Mosquito Hosts n
Culex tarsalis 5

Contig Summary

Summary Stats for Elisy virus
n Species n Contigs Max Contig Min Contig Average aa Id Max aa Id Min aa Id
1 21 1817 373.00 99.27 100.00 96.41

aa Identity Summary

Culex Rhabdo-like virus

Culex Rhabdo-like virus has a -ssRNA genome and is a member of the family Rhabdoviridae and was detected in 3 sample(s). See summary figures and tables below.

Years

Year(s) Detected n
2020 1
2021 2

Locations

Location(s) Detected n
Brandon 1
Cypress River & Carberry 1
Shoal Lake 1

Mosquito Species

Mosquito Hosts n
Culex tarsalis 3

Contig Summary

Summary Stats for Culex Rhabdo-like virus
n Species n Contigs Max Contig Min Contig Average aa Id Max aa Id Min aa Id
1 4 1973 672.00 100.00 100.00 100.00

aa Identity Summary

Culex bunyavirus 2

Culex bunyavirus 2 has a -ssRNA genome and is a member of the family Peribunyaviridae and was detected in 11 sample(s). See summary figures and tables below.

Years

Year(s) Detected n
2020 5
2021 6

Locations

Location(s) Detected n
Boissevain 1
Brandon 3
Carberry 1
Cypress River 1
Cypress River & Carberry 1
Shoal Lake 1
Shoal Lake, Virden & Souris 1
Souris 1
WPG Insect Contol 1

Mosquito Species

Mosquito Hosts n
Culex tarsalis 11

Contig Summary

Summary Stats for Culex bunyavirus 2
n Species n Contigs Max Contig Min Contig Average aa Id Max aa Id Min aa Id
1 19 1896 350.00 100.00 100.00 100.00

aa Identity Summary

Manitoba virus

Manitoba virus has a -ssRNA genome and is a member of the family Rhabdoviridae and was detected in 1 sample(s). See summary figures and tables below.

Years

Year(s) Detected n
2021 1

Locations

Location(s) Detected n
Shoal Lake 1

Mosquito Species

Mosquito Hosts n
Culex tarsalis 1

Contig Summary

Summary Stats for Manitoba virus
n Species n Contigs Max Contig Min Contig Average aa Id Max aa Id Min aa Id
1 5 1589 500.00 99.76 100.00 98.80

aa Identity Summary

Culex rhabdovirus

Culex rhabdovirus has a -ssRNA genome and is a member of the family Culex rhabdovirus and was detected in 2 sample(s). See summary figures and tables below.

Years

Year(s) Detected n
2021 2

Locations

Location(s) Detected n
Brandon 1
Cypress River 1

Mosquito Species

Mosquito Hosts n
Culex tarsalis 2

Contig Summary

Summary Stats for Culex rhabdovirus
n Species n Contigs Max Contig Min Contig Average aa Id Max aa Id Min aa Id
1 2 429 359.00 100.00 100.00 100.00

aa Identity Summary

Manitoba rhabdovirus 2*

Manitoba rhabdovirus 2* has a -ssRNA genome and is a member of the family Rhabdoviridae and was detected in 1 sample(s). See summary figures and tables below.

Years

Year(s) Detected n
2020 1

Locations

Location(s) Detected n
Shoal Lake 1

Mosquito Species

Mosquito Hosts n
Aedes vexans 1

Contig Summary

Summary Stats for Manitoba rhabdovirus 2*
n Species n Contigs Max Contig Min Contig Average aa Id Max aa Id Min aa Id
1 1 4648 4,648.00 75.00 75.00 75.00

aa Identity Summary

Manitoba picorna-like virus 1*

Manitoba picorna-like virus 1* has a +ssRNA genome and is a member of the family Iflaviridae and was detected in 22 sample(s). See summary figures and tables below.

Years

Year(s) Detected n
2020 11
2021 11

Locations

Location(s) Detected n
Boissevain 2
Boissevain & Killarney 1
Brandon 4
Carberry 1
Cypress River 1
Cypress River & Carberry 1
Killarney 2
Newdale 1
Shoal Lake 5
Souris 1
Virden 1
Virden & Souris 1
WPG Insect Contol 1

Mosquito Species

Mosquito Hosts n
Aedes vexans 19
Ochlerotatus dorsalis 3

Contig Summary

Summary Stats for Manitoba picorna-like virus 1*
n Species n Contigs Max Contig Min Contig Average aa Id Max aa Id Min aa Id
2 86 4085 510.00 87.73 100.00 73.93

aa Identity Summary

Manitoba Rhabdovirus 1*

Manitoba Rhabdovirus 1* has a +ssRNA genome and is a member of the family Rhabdoviridae and was detected in 20 sample(s). See summary figures and tables below.

Years

Year(s) Detected n
2020 9
2021 11

Locations

Location(s) Detected n
Boissevain 2
Brandon 3
Carberry 1
Cypress River 1
Cypress River & Carberry 1
Killarney 2
Newdale 1
Shoal Lake 5
Souris 1
Virden 1
Virden & Souris 1
WPG Insect Contol 1

Mosquito Species

Mosquito Hosts n
Aedes vexans 19
Ochlerotatus dorsalis 1

Contig Summary

Summary Stats for Manitoba Rhabdovirus 1*
n Species n Contigs Max Contig Min Contig Average aa Id Max aa Id Min aa Id
2 37 8033 718.00 83.22 93.01 69.42

aa Identity Summary

Hanko iflavirus 1

Hanko iflavirus 1 has a +ssRNA genome and is a member of the family Iflaviridae and was detected in 12 sample(s). See summary figures and tables below.

Years

Year(s) Detected n
2020 8
2021 4

Locations

Location(s) Detected n
Boissevain & Killarney 1
Brandon 1
Cypress River 1
Newdale 1
Shoal Lake 4
Virden & Souris 1
WPG Insect Contol 3

Mosquito Species

Mosquito Hosts n
Aedes vexans 4
Coquillettidia perturbans 1
Culex tarsalis 1
Ochlerotatus dorsalis 5
Ochlerotatus flavescens 1

Contig Summary

Summary Stats for Hanko iflavirus 1
n Species n Contigs Max Contig Min Contig Average aa Id Max aa Id Min aa Id
5 30 9246 308.00 97.49 100.00 93.45

aa Identity Summary

Manitoba iflavirus 1*

Manitoba iflavirus 1* has a +ssRNA genome and is a member of the family Iflaviridae and was detected in 17 sample(s). See summary figures and tables below.

Years

Year(s) Detected n
2020 16
2021 1

Locations

Location(s) Detected n
Boissevain & Killarney 1
Brandon 5
Cypress River & Carberry 2
Killarney 1
Shoal Lake 4
Virden & Souris 1
WPG Insect Contol 2
Western MB 1

Mosquito Species

Mosquito Hosts n
Aedes vexans 7
Coquillettidia perturbans 2
Culex tarsalis 3
Ochlerotatus dorsalis 4
Ochlerotatus flavescens 1

Contig Summary

Summary Stats for Manitoba iflavirus 1*
n Species n Contigs Max Contig Min Contig Average aa Id Max aa Id Min aa Id
5 25 9899 286.00 93.47 100.00 89.14

aa Identity Summary

Marma virus

Marma virus has a +ssRNA genome and is a member of the family Luteoviridae and was detected in 12 sample(s). See summary figures and tables below.

Years

Year(s) Detected n
2020 6
2021 6

Locations

Location(s) Detected n
Boissevain 1
Brandon 3
Carberry 1
Cypress River 1
Cypress River & Carberry 1
Shoal Lake 1
Shoal Lake, Virden & Souris 1
Souris 1
WPG Insect Contol 1
Western MB 1

Mosquito Species

Mosquito Hosts n
Coquillettidia perturbans 1
Culex tarsalis 11

Contig Summary

Summary Stats for Marma virus
n Species n Contigs Max Contig Min Contig Average aa Id Max aa Id Min aa Id
2 23 3160 1,574.00 100.00 100.00 100.00

aa Identity Summary

Culex iflavilike virus 3

Culex iflavilike virus 3 has a +ssRNA genome and is a member of the family Iflaviridae and was detected in 11 sample(s). See summary figures and tables below.

Years

Year(s) Detected n
2020 5
2021 6

Locations

Location(s) Detected n
Boissevain 1
Brandon 3
Carberry 1
Cypress River 1
Cypress River & Carberry 1
Shoal Lake 1
Shoal Lake, Virden & Souris 1
Souris 1
WPG Insect Contol 1

Mosquito Species

Mosquito Hosts n
Culex tarsalis 11

Contig Summary

Summary Stats for Culex iflavilike virus 3
n Species n Contigs Max Contig Min Contig Average aa Id Max aa Id Min aa Id
1 183 1824 250.00 99.49 100.00 94.19

aa Identity Summary

Placeda virus

Placeda virus has a +ssRNA genome and is a member of the family Flaviviridae and was detected in 13 sample(s). See summary figures and tables below.

Years

Year(s) Detected n
2020 6
2021 7

Locations

Location(s) Detected n
Boissevain 1
Brandon 4
Carberry 1
Cypress River 1
Cypress River & Carberry 1
Shoal Lake 2
Shoal Lake, Virden & Souris 1
Souris 1
WPG Insect Contol 1

Mosquito Species

Mosquito Hosts n
Aedes vexans 2
Culex tarsalis 11

Contig Summary

Summary Stats for Placeda virus
n Species n Contigs Max Contig Min Contig Average aa Id Max aa Id Min aa Id
2 169 11737 252.00 97.87 100.00 86.24

aa Identity Summary

Culex Iflavi-like virus 4

Culex Iflavi-like virus 4 has a +ssRNA genome and is a member of the family Iflaviridae and was detected in 7 sample(s). See summary figures and tables below.

Years

Year(s) Detected n
2020 4
2021 3

Locations

Location(s) Detected n
Boissevain 1
Brandon 3
Carberry 1
Cypress River & Carberry 1
Shoal Lake, Virden & Souris 1

Mosquito Species

Mosquito Hosts n
Culex tarsalis 7

Contig Summary

Summary Stats for Culex Iflavi-like virus 4
n Species n Contigs Max Contig Min Contig Average aa Id Max aa Id Min aa Id
1 23 9811 285.00 99.81 100.00 96.20

aa Identity Summary

Hubei mosquito virus 4

Hubei mosquito virus 4 has a +ssRNA genome and is a member of the family Tombusviridae and was detected in 6 sample(s). See summary figures and tables below.

Years

Year(s) Detected n
2020 3
2021 3

Locations

Location(s) Detected n
Boissevain 1
Brandon 3
Carberry 1
Cypress River & Carberry 1

Mosquito Species

Mosquito Hosts n
Culex tarsalis 6

Contig Summary

Summary Stats for Hubei mosquito virus 4
n Species n Contigs Max Contig Min Contig Average aa Id Max aa Id Min aa Id
1 6 5103 367.00 96.50 100.00 92.65

aa Identity Summary

Hubei virga-like virus 2

Hubei virga-like virus 2 has a +ssRNA genome and is a member of the family Virgaviridae and was detected in 4 sample(s). See summary figures and tables below.

Years

Year(s) Detected n
2020 3
2021 1

Locations

Location(s) Detected n
Brandon 2
Cypress River & Carberry 1
Souris 1

Mosquito Species

Mosquito Hosts n
Culex tarsalis 4

Contig Summary

Summary Stats for Hubei virga-like virus 2
n Species n Contigs Max Contig Min Contig Average aa Id Max aa Id Min aa Id
1 6 947 290.00 99.04 100.00 96.27

aa Identity Summary

Des Moines River virus

Des Moines River virus has a +ssRNA genome and is a member of the family Tombusviridae and was detected in 4 sample(s). See summary figures and tables below.

Years

Year(s) Detected n
2020 4

Locations

Location(s) Detected n
Brandon 3
WPG Insect Contol 1

Mosquito Species

Mosquito Hosts n
Aedes vexans 1
Culex tarsalis 3

Contig Summary

Summary Stats for Des Moines River virus
n Species n Contigs Max Contig Min Contig Average aa Id Max aa Id Min aa Id
2 4 2361 1,070.00 100.00 100.00 100.00

aa Identity Summary

Manitoba dicistro-like virus 1*

Manitoba dicistro-like virus 1* has a +ssRNA genome and is a member of the family Dicistroviridae and was detected in 1 sample(s). See summary figures and tables below.

Years

Year(s) Detected n
2020 1

Locations

Location(s) Detected n
Brandon 1

Mosquito Species

Mosquito Hosts n
Culex tarsalis 1

Contig Summary

Summary Stats for Manitoba dicistro-like virus 1*
n Species n Contigs Max Contig Min Contig Average aa Id Max aa Id Min aa Id
1 1 7146 7,146.00 82.61 82.61 82.61

aa Identity Summary

Soybean thrips dicistrovirus

Soybean thrips dicistrovirus has a +ssRNA genome and is a member of the family Dicistroviridae and was detected in 9 sample(s). See summary figures and tables below.

Years

Year(s) Detected n
2020 3
2021 6

Locations

Location(s) Detected n
Boissevain 2
Brandon 1
Carberry 1
Newdale 1
Shoal Lake 2
Souris 1
WPG Insect Contol 1

Mosquito Species

Mosquito Hosts n
Aedes vexans 3
Culex tarsalis 5
Ochlerotatus dorsalis 1

Contig Summary

Summary Stats for Soybean thrips dicistrovirus
n Species n Contigs Max Contig Min Contig Average aa Id Max aa Id Min aa Id
3 11 9121 893.00 100.00 100.00 100.00

aa Identity Summary

Yongsan picorna-like virus 2

Yongsan picorna-like virus 2 has a +ssRNA genome and is a member of the family Iflaviridae and was detected in 3 sample(s). See summary figures and tables below.

Years

Year(s) Detected n
2020 1
2021 2

Locations

Location(s) Detected n
Brandon 2
Shoal Lake 1

Mosquito Species

Mosquito Hosts n
Culex tarsalis 3

Contig Summary

Summary Stats for Yongsan picorna-like virus 2
n Species n Contigs Max Contig Min Contig Average aa Id Max aa Id Min aa Id
1 4 9573 2,367.00 100.00 100.00 100.00

aa Identity Summary

Manitoba tombus-like virus 1*

Manitoba tombus-like virus 1* has a +ssRNA genome and is a member of the family Tombusviridae and was detected in 5 sample(s). See summary figures and tables below.

Years

Year(s) Detected n
2020 3
2021 2

Locations

Location(s) Detected n
Brandon 2
Shoal Lake 1
Souris 1
WPG Insect Contol 1

Mosquito Species

Mosquito Hosts n
Culex tarsalis 5

Contig Summary

Summary Stats for Manitoba tombus-like virus 1*
n Species n Contigs Max Contig Min Contig Average aa Id Max aa Id Min aa Id
1 6 2351 1,687.00 79.73 100.00 72.73

aa Identity Summary

Culex narnavirus 1

Culex narnavirus 1 has a +ssRNA genome and is a member of the family Narnaviridae and was detected in 1 sample(s). See summary figures and tables below.

Years

Year(s) Detected n
2020 1

Locations

Location(s) Detected n
Brandon 1

Mosquito Species

Mosquito Hosts n
Culex tarsalis 1

Contig Summary

Summary Stats for Culex narnavirus 1
n Species n Contigs Max Contig Min Contig Average aa Id Max aa Id Min aa Id
1 1 513 513.00 100.00 100.00 100.00

aa Identity Summary

Hubei noda-like virus 12

Hubei noda-like virus 12 has a +ssRNA genome and is a member of the family Nodaviridae and was detected in 2 sample(s). See summary figures and tables below.

Years

Year(s) Detected n
2021 2

Locations

Location(s) Detected n
Carberry 1
Virden 1

Mosquito Species

Mosquito Hosts n
Coquillettidia perturbans 1
Culex tarsalis 1

Contig Summary

Summary Stats for Hubei noda-like virus 12
n Species n Contigs Max Contig Min Contig Average aa Id Max aa Id Min aa Id
2 2 4762 841.00 95.83 100.00 91.67

aa Identity Summary

Manitoba mononega-like virus 1*

Manitoba mononega-like virus 1* has a +ssRNA genome and is a member of the family Negevirus and was detected in 2 sample(s). See summary figures and tables below.

Years

Year(s) Detected n
2020 1
2021 1

Locations

Location(s) Detected n
Brandon 1
Multiple 1

Mosquito Species

Mosquito Hosts n
Aedes canadensis 1
Ochlerotatus triseriatus 1

Contig Summary

Summary Stats for Manitoba mononega-like virus 1*
n Species n Contigs Max Contig Min Contig Average aa Id Max aa Id Min aa Id
2 3 11375 5,456.00 80.60 90.00 73.21

aa Identity Summary

Serbia mononega-like virus 1

Serbia mononega-like virus 1 has a +ssRNA genome and is a member of the family Negevirus and was detected in 1 sample(s). See summary figures and tables below.

Years

Year(s) Detected n
2021 1

Locations

Location(s) Detected n
Brandon 1

Mosquito Species

Mosquito Hosts n
Aedes canadensis 1

Contig Summary

Summary Stats for Serbia mononega-like virus 1
n Species n Contigs Max Contig Min Contig Average aa Id Max aa Id Min aa Id
1 1 2477 2,477.00 75.00 75.00 75.00

aa Identity Summary

Hubei macula-like virus 3

Hubei macula-like virus 3 has a +ssRNA genome and is a member of the family Tymoviridae and was detected in 5 sample(s). See summary figures and tables below.

Years

Year(s) Detected n
2020 4
2021 1

Locations

Location(s) Detected n
Brandon 2
Shoal Lake 2
Virden & Souris 1

Mosquito Species

Mosquito Hosts n
Aedes vexans 4
Ochlerotatus dorsalis 1

Contig Summary

Summary Stats for Hubei macula-like virus 3
n Species n Contigs Max Contig Min Contig Average aa Id Max aa Id Min aa Id
2 8 6059 2,954.00 96.13 100.00 92.15

aa Identity Summary

Hanko iflavirus 2

Hanko iflavirus 2 has a +ssRNA genome and is a member of the family Iflaviridae and was detected in 18 sample(s). See summary figures and tables below.

Years

Year(s) Detected n
2020 11
2021 7

Locations

Location(s) Detected n
Boissevain 1
Brandon 3
Cypress River & Carberry 1
Killarney 2
Newdale 1
Shoal Lake 5
Souris 1
Virden 1
Virden & Souris 1
WPG Insect Contol 2

Mosquito Species

Mosquito Hosts n
Aedes vexans 15
Coquillettidia perturbans 1
Ochlerotatus dorsalis 2

Contig Summary

Summary Stats for Hanko iflavirus 2
n Species n Contigs Max Contig Min Contig Average aa Id Max aa Id Min aa Id
3 29 9206 461.00 88.70 100.00 67.08

aa Identity Summary

Black queen cell virus

Black queen cell virus has a +ssRNA genome and is a member of the family Dicistroviridae and was detected in 1 sample(s). See summary figures and tables below.

Years

Year(s) Detected n
2020 1

Locations

Location(s) Detected n
Brandon 1

Mosquito Species

Mosquito Hosts n
Aedes vexans 1

Contig Summary

Summary Stats for Black queen cell virus
n Species n Contigs Max Contig Min Contig Average aa Id Max aa Id Min aa Id
1 2 6035 2,087.00 100.00 100.00 100.00

aa Identity Summary

Cordoba virus

Cordoba virus has a +ssRNA genome and is a member of the family Negevirus and was detected in 3 sample(s). See summary figures and tables below.

Years

Year(s) Detected n
2021 3

Locations

Location(s) Detected n
Boissevain 1
Cypress River 1
Souris 1

Mosquito Species

Mosquito Hosts n
Aedes vexans 3

Contig Summary

Summary Stats for Cordoba virus
n Species n Contigs Max Contig Min Contig Average aa Id Max aa Id Min aa Id
1 14 5133 610.00 97.10 100.00 93.75

aa Identity Summary

Mekrijarvi Negevirus

Mekrijarvi Negevirus has a +ssRNA genome and is a member of the family Negevirus and was detected in 6 sample(s). See summary figures and tables below.

Years

Year(s) Detected n
2020 2
2021 4

Locations

Location(s) Detected n
Boissevain 1
Boissevain & Killarney 1
Cypress River 1
Shoal Lake 1
Souris 1
Virden & Souris 1

Mosquito Species

Mosquito Hosts n
Aedes vexans 3
Ochlerotatus dorsalis 3

Contig Summary

Summary Stats for Mekrijarvi Negevirus
n Species n Contigs Max Contig Min Contig Average aa Id Max aa Id Min aa Id
2 6 9873 3,125.00 94.13 100.00 90.78

aa Identity Summary

Manitoba mononega-like virus 2*

Manitoba mononega-like virus 2* has a +ssRNA genome and is a member of the family Negevirus and was detected in 3 sample(s). See summary figures and tables below.

Years

Year(s) Detected n
2020 1
2021 2

Locations

Location(s) Detected n
Boissevain 1
Brandon 1
Souris 1

Mosquito Species

Mosquito Hosts n
Aedes vexans 3

Contig Summary

Summary Stats for Manitoba mononega-like virus 2*
n Species n Contigs Max Contig Min Contig Average aa Id Max aa Id Min aa Id
1 3 9570 2,735.00 98.77 100.00 96.30

aa Identity Summary

Hubei arthropod virus 1

Hubei arthropod virus 1 has a +ssRNA genome and is a member of the family Iflaviridae and was detected in 1 sample(s). See summary figures and tables below.

Years

Year(s) Detected n
2021 1

Locations

Location(s) Detected n
Shoal Lake 1

Mosquito Species

Mosquito Hosts n
Aedes vexans 1

Contig Summary

Summary Stats for Hubei arthropod virus 1
n Species n Contigs Max Contig Min Contig Average aa Id Max aa Id Min aa Id
1 1 2967 2,967.00 100.00 100.00 100.00

aa Identity Summary

Soybean thrips iflavirus 4

Soybean thrips iflavirus 4 has a +ssRNA genome and is a member of the family Iflaviridae and was detected in 1 sample(s). See summary figures and tables below.

Years

Year(s) Detected n
2020 1

Locations

Location(s) Detected n
WPG Insect Contol 1

Mosquito Species

Mosquito Hosts n
Coquillettidia perturbans 1

Contig Summary

Summary Stats for Soybean thrips iflavirus 4
n Species n Contigs Max Contig Min Contig Average aa Id Max aa Id Min aa Id
1 1 3835 3,835.00 100.00 100.00 100.00

aa Identity Summary

Cafluga virus

Cafluga virus has a +ssRNA genome and is a member of the family Iflaviridae and was detected in 2 sample(s). See summary figures and tables below.

Years

Year(s) Detected n
2020 2

Locations

Location(s) Detected n
Boissevain & Killarney 1
WPG Insect Contol 1

Mosquito Species

Mosquito Hosts n
Coquillettidia perturbans 1
Ochlerotatus dorsalis 1

Contig Summary

Summary Stats for Cafluga virus
n Species n Contigs Max Contig Min Contig Average aa Id Max aa Id Min aa Id
2 2 3426 1,395.00 99.77 100.00 99.55

aa Identity Summary

Manitoba tymo-like virus 1*

Manitoba tymo-like virus 1* has a +ssRNA genome and is a member of the family Tymoviridae and was detected in 1 sample(s). See summary figures and tables below.

Years

Year(s) Detected n
2021 1

Locations

Location(s) Detected n
Boissevain 1

Mosquito Species

Mosquito Hosts n
Aedes vexans 1

Contig Summary

Summary Stats for Manitoba tymo-like virus 1*
n Species n Contigs Max Contig Min Contig Average aa Id Max aa Id Min aa Id
1 1 6302 6,302.00 66.79 66.79 66.79

aa Identity Summary

Utsjoki negevirus 3

Utsjoki negevirus 3 has a +ssRNA genome and is a member of the family Negevirus and was detected in 2 sample(s). See summary figures and tables below.

Years

Year(s) Detected n
2020 2

Locations

Location(s) Detected n
Shoal Lake 1
Virden & Souris 1

Mosquito Species

Mosquito Hosts n
Aedes vexans 2

Contig Summary

Summary Stats for Utsjoki negevirus 3
n Species n Contigs Max Contig Min Contig Average aa Id Max aa Id Min aa Id
1 2 989 972.00 99.02 99.03 99.01

aa Identity Summary

Inari jingmenvirus

Inari jingmenvirus has a +ssRNA genome and is a member of the family Flaviviridae and was detected in 1 sample(s). See summary figures and tables below.

Years

Year(s) Detected n
2020 1

Locations

Location(s) Detected n
Shoal Lake 1

Mosquito Species

Mosquito Hosts n
Aedes vexans 1

Contig Summary

Summary Stats for Inari jingmenvirus
n Species n Contigs Max Contig Min Contig Average aa Id Max aa Id Min aa Id
1 1 1267 1,267.00 100.00 100.00 100.00

aa Identity Summary

Manitoba virgavirus 1*

Manitoba virgavirus 1* has a +ssRNA genome and is a member of the family Virgaviridae and was detected in 1 sample(s). See summary figures and tables below.

Years

Year(s) Detected n
2020 1

Locations

Location(s) Detected n
Shoal Lake 1

Mosquito Species

Mosquito Hosts n
Ochlerotatus dorsalis 1

Contig Summary

Summary Stats for Manitoba virgavirus 1*
n Species n Contigs Max Contig Min Contig Average aa Id Max aa Id Min aa Id
1 1 1675 1,675.00 83.83 83.83 83.83

aa Identity Summary

Manitoba narnavirus 1*

Manitoba narnavirus 1* has a +ssRNA genome and is a member of the family Narnaviridae and was detected in 1 sample(s). See summary figures and tables below.

Years

Year(s) Detected n
2021 1

Locations

Location(s) Detected n
Shoal Lake 1

Mosquito Species

Mosquito Hosts n
Anopheles earlei 1

Contig Summary

Summary Stats for Manitoba narnavirus 1*
n Species n Contigs Max Contig Min Contig Average aa Id Max aa Id Min aa Id
1 2 1760 654.00 80.59 80.89 80.29

aa Identity Summary

LS0tDQp0aXRsZTogIk1vc3F1aXRvIE1ldGFnZW5vbWljcyBTdW1tYXJ5Ig0KYXV0aG9yOiAiQ29sZSBCYXJpbCINCmRhdGU6ICJgciBTeXMuRGF0ZSgpYCINCm91dHB1dDogDQogIGh0bWxfZG9jdW1lbnQ6DQogICAgdG9jOiB0cnVlDQogICAgdG9jX2Zsb2F0OiB0cnVlDQogICAgdGhlbWU6IGNvc21vDQogICAgY29kZV9kb3dubG9hZDogdHJ1ZQ0KICAgIGNvZGVfZm9sZGluZzogc2hvdw0KLS0tDQoNCmBgYHtjc3MgdG9jLWNvbnRlbnQsIGVjaG8gPSBGQUxTRX0NCiNUT0Mgew0KICBsZWZ0OiAyNXB4Ow0KICBtYXJnaW46IDI1cHggMHB4IDI1cHggMHB4Ow0KfQ0KDQoubWFpbi1jb250YWluZXIgew0KICAgIG1hcmdpbi1sZWZ0OiA1MHB4Ow0KfQ0KYGBgDQoNCmBgYHtyIHNldHVwLCBpbmNsdWRlPUZBTFNFfQ0Ka25pdHI6Om9wdHNfY2h1bmskc2V0KGVjaG8gPSBUUlVFLCBtZXNzYWdlID0gRkFMU0UsIHdhcm5pbmdzID0gRkFMU0UpDQpgYGANCg0KYGBgez1odG1sfQ0KPHN0eWxlPg0KICAgdGFibGUgew0KICAgICBkaXNwbGF5OiBibG9jazsNCiAgICAgb3ZlcmZsb3c6IGF1dG87DQogICB9DQoNCiAgIGJsb2NrcXVvdGUgew0KICAgYmFja2dyb3VuZC1jb2xvcjogIzMzNjM4ZGZmOw0KICAgY29sb3I6d2hpdGU7DQogIH0NCg0KIDwvc3R5bGU+DQpgYGANCg0KDQojIExpYnJhcmllcw0KDQpgYGB7ciwgbG9hZF9saWJyYXJpZXMsIG1lc3NhZ2UgPSBGQUxTRSwgd2FybmluZyA9IEZBTFNFfQ0KcmVxdWlyZShwYWNtYW4pDQpwYWNtYW46OnBfbG9hZCh0aWR5dmVyc2UsIGphbml0b3IsIGhlcmUsIERULCBndCwgcGh5bG90b29scywgYXNzZXJ0ciwgcmVhZHhsLCBwYXRjaHdvcmssIHJlc2hhcGUyLCBnZ3RleHQsIG9wZW54bHN4LCBncmlkLCB0aWZmKQ0KYGBgDQoNCiMgTG9hZCBEYXRhDQoNCmBgYHtyLCBsb2FkX2RhdGEsIG1lc3NhZ2UgPSBGQUxTRSwgd2FybmluZyA9IEZBTFNFfQ0KdmlydXNfbWFzdGVyXzIwMjMgPC0gcmVhZF9jc3YoaGVyZSgiRGF0YS90Ymxhc3R4X21hc3Rlci5jc3YiKSkNCmBgYA0KDQojIEJMQVNUIFN1bW1hcnkNCg0KYGBge3IsIHJlYWRfY29udGlnX3N1bW1hcnksIG1lc3NhZ2UgPSBGQUxTRSwgd2FybmluZyA9IEZBTFNFfQ0KbGlicmFyeV9zdW1tYXJ5IDwtIHZpcnVzX21hc3Rlcl8yMDIzICU+JQ0KICBncm91cF9ieShtb3NxdWl0b19zcGVjaWVzLCBzYW1wbGVfbnVtYmVyKSAlPiUNCiAgc3VtbWFyaXNlKG4gPSBuX2Rpc3RpbmN0KG1vc3F1aXRvX3NwZWNpZXMpKSAlPiUNCiAgZ3JvdXBfYnkobW9zcXVpdG9fc3BlY2llcykgJT4lDQogIHN1bW1hcmlzZShuID0gbigpKSAlPiUNCiAgYWRvcm5fdG90YWxzKCkNCg0KeWVhcnMgPC0gdmlydXNfbWFzdGVyXzIwMjMgJT4lIA0KICBncm91cF9ieShjb2xsZWN0aW9uX3llYXIsIHZpcnVzX25hbWUpICU+JSANCiAgc3VtbWFyaXNlKGNvdW50ID0gbl9kaXN0aW5jdCh2aXJ1c19uYW1lLCBjb2xsZWN0aW9uX3llYXIpKSAlPiUgDQogIHBpdm90X3dpZGVyKG5hbWVzX2Zyb20gPSBjb2xsZWN0aW9uX3llYXIsIHZhbHVlc19mcm9tID0gY291bnQsIHZhbHVlc19maWxsID0gMCkNCg0KdmlydXNfbGluZWFnZSA8LSB2aXJ1c19tYXN0ZXJfMjAyMyAlPiUgDQogIGdyb3VwX2J5KHZpcnVzX25hbWUsIHZpcmFsX2ZhbWlseSwgZ2Vub21lKSAlPiUgDQogIHN1bW1hcmlzZShuID0gbl9kaXN0aW5jdCh2aXJ1c19uYW1lLCB2aXJhbF9mYW1pbHksIGdlbm9tZSkpICU+JSANCiAgc2VsZWN0KC0ibiIpDQoNCnZpcnVzX21hc3Rlcl8yMDIzICU+JSANCiAgZ3JvdXBfYnkodmlydXNfbmFtZSkgJT4lIA0KICBzdW1tYXJpc2Uobl9jb250aWdzID0gbigpLA0KICAgICAgICAgICAgbWVhbl9jb3YgPSBtZWFuKGNvdmVyYWdlKSwNCiAgICAgICAgICAgIG1pbl9jb3YgPSBtaW4oY292ZXJhZ2UpLA0KICAgICAgICAgICAgbWF4X2NvdiA9IG1heChjb3ZlcmFnZSksDQogICAgICAgICAgICBtZWFuX3BpZCA9IG1lYW4oZ3JlYXRlc3RfaWRlbnRpdHlfcGVyY2VudCksDQogICAgICAgICAgICBtZWRfcGlkID0gbWVkaWFuKGdyZWF0ZXN0X2lkZW50aXR5X3BlcmNlbnQpLA0KICAgICAgICAgICAgbWluX3BpZCA9IG1pbihncmVhdGVzdF9pZGVudGl0eV9wZXJjZW50KSwNCiAgICAgICAgICAgIG1heF9waWQgPSBtYXgoZ3JlYXRlc3RfaWRlbnRpdHlfcGVyY2VudCksDQogICAgICAgICAgICB0b3RhbF9yZWFkcyA9IHN1bSh0b3RhbF9yZWFkX2NvdW50KSkgJT4lIA0KICBsZWZ0X2pvaW4odmlydXNfbGluZWFnZSwgYnkgPSAidmlydXNfbmFtZSIpICU+JSANCiAgZ3JvdXBfYnkoZ2Vub21lLCB2aXJhbF9mYW1pbHkpICU+JSANCiAgYXJyYW5nZShnZW5vbWUsIHZpcmFsX2ZhbWlseSkgJT4lIA0KICByZWxvY2F0ZSh0b3RhbF9yZWFkcywgLmFmdGVyID0gIm5fY29udGlncyIpICU+JSANCiAgbXV0YXRlKGFjcm9zcyguY29scyA9ICJ2aXJ1c19uYW1lIiwNCiAgICAgICAgICAgICAgICB+Y2FzZV93aGVuKGdyZXBsKCJNYW5pdG9iYSIsIHZpcnVzX25hbWUpICYgIWdyZXBsKCJNYW5pdG9iYSB2aXJ1cyIsIHZpcnVzX25hbWUpIH4gDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc3RlMCguLCAiKiIpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgVFJVRSB+IC4pKSkgJT4lIA0KICBndCgpICU+JSANCiAgZm10X251bWJlcihjb2x1bW5zID0gbWVhbl9jb3Y6bWF4X3BpZCwNCiAgICAgICAgICAgICBkZWNpbWFscyA9IDIpICU+JSANCiAgZm10X251bWJlcihjb2x1bW5zID0gdG90YWxfcmVhZHMsDQogICAgICAgICAgICAgc2VwX21hcmsgPSAiLCIsDQogICAgICAgICAgICAgZGVjaW1hbHMgPSAwKSAlPiUgDQogIHRhYl9zcGFubmVyKGxhYmVsID0gIkNvdmVyYWdlIERlcHRoIiwgY29sdW1ucyA9IGMobWVhbl9jb3YsIG1pbl9jb3YsIG1heF9jb3YpKSAlPiUgDQogIHRhYl9zcGFubmVyKGxhYmVsID0gImFhIFBlcmNlbnQgSWRlbnRpdHkiLCBjb2x1bW5zID0gYyhtZWFuX3BpZCwgbWluX3BpZCwgbWF4X3BpZCwgbWVkX3BpZCkpICU+JSANCiAgY29sc19sYWJlbCgNCiAgICBuX2NvbnRpZ3MgPSAiQ29udGlncyIsDQogICAgdG90YWxfcmVhZHMgPSAiUmVhZHMiLA0KICAgIG1lYW5fY292ID0gIk1lYW4iLCBtaW5fY292ID0gIk1pbiIsIG1heF9jb3YgPSAiTWF4IiwNCiAgICBtZWFuX3BpZCA9ICJNZWFuIiwgbWluX3BpZCA9ICJNaW4iLCBtYXhfcGlkID0gIk1heCIsIG1lZF9waWQgPSAiTWVkaWFuIiwNCiAgICB2aXJ1c19uYW1lID0gIlZpcnVzIikgJT4lIA0KICB0YWJfc3R5bGUoDQogICAgc3R5bGUgPSBsaXN0KGNlbGxfZmlsbChjb2xvciA9ICJncmV5IiksDQogICAgICAgICAgICAgICAgIGNlbGxfdGV4dCh3ZWlnaHQgPSAiYm9sZCIpKSwNCiAgICBsb2NhdGlvbnMgPSBjZWxsc19yb3dfZ3JvdXBzKGdyb3VwcyA9IGV2ZXJ5dGhpbmcoKSkNCiAgKSAlPiUgDQogIHRhYl9zdHlsZSgNCiAgICBzdHlsZSA9IGNlbGxfYm9yZGVycygNCiAgICAgIHNpZGVzID0gImxlZnQiLA0KICAgICAgd2VpZ2h0ID0gcHgoMiksDQogICAgICBjb2xvciA9ICJncmV5IiksDQogICAgbG9jYXRpb25zID0gY2VsbHNfYm9keSgNCiAgICAgIGNvbHVtbnMgPSBjKG1lYW5fY292LCBtZWFuX3BpZCwgIm5fY29udGlncyIpDQogICAgKQ0KICApICU+JSANCiAgZGF0YV9jb2xvcigNCiAgICBjb2x1bW5zID0gbWVhbl9waWQ6bWF4X3BpZCwNCiAgICBwYWxldHRlID0gInZpcmlkaXMiDQogICAgDQogICkgJT4lIA0KICB0YWJfZm9vdG5vdGUoIiogUHV0YXRpdmVseSBub3ZlbCB2aXJ1cy4iKQ0KYGBgDQoNCiMgVmlydXMgRGV0ZWN0aW9ucyBieSBTcGVjaWVzDQoNCmBgYHtyfQ0KdmlydXNfbWFzdGVyXzIwMjMgJT4lIA0KICBncm91cF9ieShtb3NxdWl0b19zcGVjaWVzLCB2aXJ1c19uYW1lKSAlPiUgDQogIHN1bW1hcmlzZShjb3VudCA9IG5fZGlzdGluY3QodmlydXNfbmFtZSwgc2FtcGxlX251bWJlcikpICU+JSANCiAgcGl2b3Rfd2lkZXIobmFtZXNfZnJvbSA9IG1vc3F1aXRvX3NwZWNpZXMsIHZhbHVlc19mcm9tID0gY291bnQsIHZhbHVlc19maWxsID0gMCkgJT4lIA0KICBtdXRhdGUoIkFlZGVzIGNhbmFkZW5zaXMgXG4gVG90YWw6IDEiID0gKGBBZWRlcyBjYW5hZGVuc2lzYCAvIDEpICogMTAwLA0KICAgICAgICAgIkFlZGVzIHZleGFucyBcbiBUb3RhbDogMTkiID0gKGBBZWRlcyB2ZXhhbnNgIC8gMTkpICogMTAwLA0KICAgICAgICAgIkFub3BoZWxlcyBlYXJsZWkgXG4gVG90YWw6IDEiID0gKGBBbm9waGVsZXMgZWFybGVpYCAvIDEpICogMTAwLA0KICAgICAgICAgIkNvcXVpbGxldHRpZGlhIHBlcnR1cmJhbnMgXG4gVG90YWw6IDYiID0gKGBDb3F1aWxsZXR0aWRpYSBwZXJ0dXJiYW5zYCAvIDYpICogMTAwLA0KICAgICAgICAgIkN1bGV4IHRhcnNhbGlzIFxuIFRvdGFsOiAxMSIgPSAoYEN1bGV4IHRhcnNhbGlzYCAvIDExKSAqIDEwMCwNCiAgICAgICAgICJPY2hsZXJvdGF0dXMgZG9yc2FsaXMgXG4gVG90YWw6IDUiID0gKGBPY2hsZXJvdGF0dXMgZG9yc2FsaXNgIC8gNSkgKiAxMDAsDQogICAgICAgICAiT2NobGVyb3RhdHVzIGZsYXZlc2NlbnMgXG4gVG90YWw6IDEiID0gKGBPY2hsZXJvdGF0dXMgZmxhdmVzY2Vuc2AgLyAxKSAqIDEwMCwNCiAgICAgICAgICJPY2hsZXJvdGF0dXMgdHJpc2VyaWF0dXMgXG4gVG90YWw6IDEiID0gKGBPY2hsZXJvdGF0dXMgdHJpc2VyaWF0dXNgIC8gMSkgKiAxMDAsDQogICkgJT4lIHNlbGVjdCgtYEFlZGVzIGNhbmFkZW5zaXNgOi1gT2NobGVyb3RhdHVzIHRyaXNlcmlhdHVzYCkgJT4lIA0KICBsZWZ0X2pvaW4odmlydXNfbGluZWFnZSwgYnkgPSAidmlydXNfbmFtZSIpICU+JSANCiAgIGxlZnRfam9pbih5ZWFycywgYnkgPSAidmlydXNfbmFtZSIpICU+JSANCiAgIHJlbG9jYXRlKCIyMDIwIiwgLmFmdGVyID0gInZpcnVzX25hbWUiKSAlPiUgcmVsb2NhdGUoIjIwMjEiLCAuYWZ0ZXIgPSAiMjAyMCIpICU+JSANCiAgIG11dGF0ZShhY3Jvc3MoLmNvbHMgPSBjKCIyMDIwIiwgIjIwMjEiKSwNCiAgICAgICAgICAgICAgICAgfmNhc2Vfd2hlbiguID09ICIxIiB+IFRSVUUsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiA9PSAiMCIgfiBGQUxTRSkpKSAlPiUgDQogICBtdXRhdGUoYWNyb3NzKC5jb2xzID0gInZpcnVzX25hbWUiLA0KICAgICAgICAgICAgICAgICB+Y2FzZV93aGVuKGdyZXBsKCJNYW5pdG9iYSIsIHZpcnVzX25hbWUpICYgIWdyZXBsKCJNYW5pdG9iYSB2aXJ1cyIsIHZpcnVzX25hbWUpIH4gDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXN0ZTAoLiwgIioiKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBUUlVFIH4gLikpKSAlPiUgDQogIGdyb3VwX2J5KGdlbm9tZSwgdmlyYWxfZmFtaWx5KSAlPiUgDQogIGFycmFuZ2UoZ2Vub21lLCB2aXJhbF9mYW1pbHkpICU+JSANCiAgZ3QoKSAlPiUgDQogIGZtdF9udW1iZXIoY29sdW1ucyA9ICJBZWRlcyBjYW5hZGVuc2lzIFxuIFRvdGFsOiAxIjoiT2NobGVyb3RhdHVzIHRyaXNlcmlhdHVzIFxuIFRvdGFsOiAxIiwNCiAgICAgICAgICAgICBkZWNpbWFscyA9IDIpICU+JSANCiAgdGFiX3NwYW5uZXIobGFiZWwgPSAiUGVyY2VudCBvZiBMaWJyYXJpZXMgRGV0ZWN0ZWQgYnkgU3BlY2llcyIsIA0KICAgICAgICAgICAgICBjb2x1bW5zID0gYygiQWVkZXMgY2FuYWRlbnNpcyBcbiBUb3RhbDogMSI6Ik9jaGxlcm90YXR1cyB0cmlzZXJpYXR1cyBcbiBUb3RhbDogMSIpKSAlPiUgDQogICB0YWJfc3Bhbm5lcihsYWJlbCA9IGh0bWwoIlllYXJzIERldGVjdGVkIiksDQogICAgICAgICAgICAgICBjb2x1bW5zID0gYygiMjAyMCI6IjIwMjEiKSkgJT4lIA0KICBjb2xzX2xhYmVsKA0KICAgICJBZWRlcyBjYW5hZGVuc2lzIFxuIFRvdGFsOiAxIiA9IGh0bWwoIjxlbT5BZWRlcyBjYW5hZGVuc2lzPC9lbT4gPGJyPiBUb3RhbDogMSIpLA0KICAgICJBZWRlcyB2ZXhhbnMgXG4gVG90YWw6IDE5IiA9IGh0bWwoIjxlbT5BZWRlcyB2ZXhhbnM8L2VtPiA8YnI+IFRvdGFsOiAxOSIpLA0KICAgICJBbm9waGVsZXMgZWFybGVpIFxuIFRvdGFsOiAxIiA9IGh0bWwoIjxlbT5Bbm9waGVsZXMgZWFybGVpPC9lbT4gPGJyPiBUb3RhbDogMSIpLA0KICAgICJDb3F1aWxsZXR0aWRpYSBwZXJ0dXJiYW5zIFxuIFRvdGFsOiA2IiA9IGh0bWwoIjxlbT5Db3F1aWxsZXR0aWRpYSBwZXJ0dXJiYW5zPC9lbT4gPGJyPiBUb3RhbDogNiIpLA0KICAgICJDdWxleCB0YXJzYWxpcyBcbiBUb3RhbDogMTEiID0gaHRtbCgiPGVtPkN1bGV4IHRhcnNhbGlzPC9lbT4gPGJyPiBUb3RhbDogMTEiKSwNCiAgICAiT2NobGVyb3RhdHVzIGRvcnNhbGlzIFxuIFRvdGFsOiA1IiA9IGh0bWwoIjxlbT5PY2hsZXJvdGF0dXMgZG9yc2FsaXM8L2VtPiA8YnI+IFRvdGFsOiA1IiksDQogICAgIk9jaGxlcm90YXR1cyBmbGF2ZXNjZW5zIFxuIFRvdGFsOiAxIiA9IGh0bWwoIjxlbT5PY2hsZXJvdGF0dXMgZmxhdmVzY2VuczwvZW0+IDxicj4gVG90YWw6IDEiKSwNCiAgICAiT2NobGVyb3RhdHVzIHRyaXNlcmlhdHVzIFxuIFRvdGFsOiAxIiA9IGh0bWwoIjxlbT5PY2hsZXJvdGF0dXMgdHJpc2VyaWF0dXM8L2VtPiA8YnI+IFRvdGFsOiAxIiksDQogICAgdmlydXNfbmFtZSA9ICJWaXJ1cyIpICU+JSANCiAgIGNvbHNfYWxpZ24oYWxpZ24gPSAiY2VudGVyIiwNCiAgICAgICAgICAgICAgY29sdW1ucyA9ICIyMDIwIjoiT2NobGVyb3RhdHVzIHRyaXNlcmlhdHVzIFxuIFRvdGFsOiAxIikgJT4lIA0KICAgdGFiX3N0eWxlKA0KICAgICBzdHlsZSA9IGxpc3QoY2VsbF9maWxsKGNvbG9yID0gImdyZXkiKSwNCiAgICAgICAgICAgICAgICAgIGNlbGxfdGV4dCh3ZWlnaHQgPSAiYm9sZCIpKSwNCiAgICAgbG9jYXRpb25zID0gY2VsbHNfcm93X2dyb3Vwcyhncm91cHMgPSBldmVyeXRoaW5nKCkpKSAlPiUgDQogICBkYXRhX2NvbG9yKGNvbHVtbnMgPSBgQWVkZXMgY2FuYWRlbnNpcyBcbiBUb3RhbDogMWA6bGFzdF9jb2woKSwNCiAgICAgICAgICAgICAgcGFsZXR0ZSA9ICJ2aXJpZGlzIiwgDQogICAgICAgICAgICAgIGRpcmVjdGlvbiA9ICJyb3ciKSAlPiUgDQogICB0YWJfc3R5bGUoDQogICAgIHN0eWxlID0gY2VsbF9ib3JkZXJzKA0KICAgICAgIHNpZGVzID0gImxlZnQiLA0KICAgICAgIHdlaWdodCA9IHB4KDIpLA0KICAgICAgIGNvbG9yID0gImJsYWNrIiksDQogICAgIGxvY2F0aW9ucyA9IGNlbGxzX2JvZHkoDQogICAgICAgY29sdW1ucyA9IGMoIkFlZGVzIGNhbmFkZW5zaXMgXG4gVG90YWw6IDEiKSkpICU+JSANCiAgdGFiX2Zvb3Rub3RlKCIqIFB1dGF0aXZlbHkgbm92ZWwgdmlydXMiKSAlPiUgDQogIHRhYl9vcHRpb25zKC4sIGNvbnRhaW5lci53aWR0aCA9IDE1MDApDQpgYGANCg0KIyBWaXJ1cyBQcm9maWxlcw0KDQo+IEJlbG93IGFyZSBzdW1tYXJpZXMgZm9yIGVhY2ggdmlydXMgZGV0ZWN0ZWQuIA0KDQpgYGB7ciwgdmlydXNfdGFibGV9DQp2aXJ1c19wcm9maWxlX3RhYmxlIDwtIGZ1bmN0aW9uKHZpcnVzKSB7DQoNCiB2aXJ1c190YWJsZSA8PC0gIHZpcnVzX21hc3Rlcl8yMDIzICU+JSANCiAgZmlsdGVyKHZpcnVzX25hbWUgPT0gdmlydXMpICU+JSANCiAgI3NlbGVjdCgtImNvbnRpZ19zZXF1ZW5jZXMiKSAlPiUgDQogIHN1bW1hcmlzZSgNCiAgICBudW1fc3BlY2llcyA9IG5fZGlzdGluY3QobW9zcXVpdG9fc3BlY2llcyksDQogICAgbnVtX2NvbnRpZyA9IG4oKSwNCiAgICBsb25nZXN0X2NvbnRpZyA9IG1heChjb250aWdfbGVuZ3RoKSwNCiAgICBzaG9ydGVzdF9jb250aWcgPSBtaW4oY29udGlnX2xlbmd0aCksDQogICAgYXZnX250X2lkID0gbWVhbihncmVhdGVzdF9pZGVudGl0eV9wZXJjZW50KSwNCiAgICBtYXhfbnRfaWQgPSBtYXgoZ3JlYXRlc3RfaWRlbnRpdHlfcGVyY2VudCksDQogICAgbWluX250X2lkID0gbWluKGdyZWF0ZXN0X2lkZW50aXR5X3BlcmNlbnQpDQogICAgDQogICkgJT4lIA0KICBndCgpICU+JSANCiAgY29sc19sYWJlbCgNCiAgICBsb25nZXN0X2NvbnRpZyA9ICJNYXggQ29udGlnIiwNCiAgICBzaG9ydGVzdF9jb250aWcgPSAiTWluIENvbnRpZyIsDQogICAgYXZnX250X2lkID0gIkF2ZXJhZ2UgYWEgSWQiLA0KICAgIG1heF9udF9pZCA9ICJNYXggYWEgSWQiLA0KICAgIG1pbl9udF9pZCA9ICJNaW4gYWEgSWQiLA0KICAgIG51bV9jb250aWcgPSAibiBDb250aWdzIiwNCiAgICBudW1fc3BlY2llcyA9ICJuIFNwZWNpZXMiDQogICkgJT4lIA0KICB0YWJfaGVhZGVyKA0KICAgIHRpdGxlID0gcGFzdGUwKCJTdW1tYXJ5IFN0YXRzIGZvciIsICIgIiwgdmlydXMpDQogICkgJT4lIA0KICAgIGZtdF9udW1iZXIoDQogICAgICBjb2x1bW5zID0gNDpsYXN0X2NvbCgpLA0KICAgICAgZGVjaW1hbHMgPSAyDQogICAgKQ0KDQp9DQogIA0KYGBgDQoNCg0KDQpgYGB7ciwgdmlydXNfcHJvZmlsZXMsIHJlc3VsdHMgPSAnYXNpcyd9DQojIEFycmFuZ2UgZGYgZm9yIHZpcnVzIHJlcG9ydGluZw0KdmlydXNfbWFzdGVyXzIwMjMgPDwtIHZpcnVzX21hc3Rlcl8yMDIzICU+JSANCiAgbXV0YXRlKGFjcm9zcyguY29scyA9ICJ2aXJ1c19uYW1lIiwNCiAgICAgICAgICAgICAgICB+Y2FzZV93aGVuKGdyZXBsKCJNYW5pdG9iYSIsIHZpcnVzX25hbWUpICYgIWdyZXBsKCJNYW5pdG9iYSB2aXJ1cyIsIHZpcnVzX25hbWUpIH4gDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc3RlMCguLCAiKiIpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgVFJVRSB+IC4pKSkgJT4lIA0KICBhcnJhbmdlKGRlc2MoZ2Vub21lKSkgJT4lIA0KICBkcm9wX25hKHZpcnVzX25hbWUpDQoNCmZvcih2aXJ1cyBpbiB1bmlxdWUodmlydXNfbWFzdGVyXzIwMjMkdmlydXNfbmFtZSkpIHsNCg0KICBnZW5vbWUgPC0gdmlydXNfbWFzdGVyXzIwMjMgJT4lIA0KICAgIGFycmFuZ2UoZGVzYyhnZW5vbWUpKSAlPiUgDQogICAgZHJvcF9uYSh2aXJ1c19uYW1lKSAlPiUgIA0KICAgIGZpbHRlcih2aXJ1c19uYW1lID09IHZpcnVzKSAlPiUgDQogICAgcHVsbChnZW5vbWUpICU+JSANCiAgICBoZWFkKDEpDQogIA0KICBnZW5vbWUgPC0gcGFzdGUwKGdlbm9tZSkNCiAgDQogIGZhbWlseSA8LSB2aXJ1c19tYXN0ZXJfMjAyMyAlPiUgDQogICAgZmlsdGVyKHZpcnVzX25hbWUgPT0gdmlydXMpICU+JSANCiAgICBwdWxsKHZpcmFsX2ZhbWlseSkgJT4lIA0KICAgIGhlYWQoMSkNCiAgDQogIGZhbWlseSA8LSBwYXN0ZTAoZmFtaWx5KQ0KDQogIHNhbXBsZV9kZXRlY3Rpb25zIDwtIHZpcnVzX21hc3Rlcl8yMDIzICU+JSANCiAgICBmaWx0ZXIodmlydXNfbmFtZSA9PSB2aXJ1cykgJT4lIA0KICAgIGRpc3RpbmN0KHNhbXBsZV9udW1iZXIpDQogIHNhbXBsZV9kZXRlY3Rpb25zIDwtIHBhc3RlMChucm93KHNhbXBsZV9kZXRlY3Rpb25zKSkNCiAgDQogIA0KICBjYXQoJ1xuXG4jJywgdmlydXMsICdcblxuJykNCiAgDQogIGNhdCgnXG5cbj4nLCB2aXJ1cywgJ2hhcyBhICcsIGdlbm9tZSwgJ2dlbm9tZSBhbmQgaXMgYSBtZW1iZXIgb2YgdGhlIGZhbWlseScsIGZhbWlseSwgJ2FuZCB3YXMgZGV0ZWN0ZWQgaW4nLCBzYW1wbGVfZGV0ZWN0aW9ucywgJ3NhbXBsZShzKS4nLCAnU2VlIHN1bW1hcnkgZmlndXJlcyBhbmQgdGFibGVzIGJlbG93LicsICAnXG5cbicpDQogIA0KcHJpbnQoc3VwcHJlc3NNZXNzYWdlcygNCiAgdmlydXNfbWFzdGVyXzIwMjMgJT4lIA0KICAgIGZpbHRlcih2aXJ1c19uYW1lID09IHZpcnVzKSAlPiUgDQogICAgc2VsZWN0KC0iY29udGlnX3NlcXVlbmNlIikgJT4lIA0KICAgIGdyb3VwX2J5KG1vc3F1aXRvX3NwZWNpZXMsIGNvbGxlY3Rpb25feWVhciwgbG9jYXRpb25fcG9vbCkgJT4lIA0KICAgIHN1bW1hcmlzZShuID0gbl9kaXN0aW5jdChzYW1wbGVfbnVtYmVyKSkgJT4lIA0KICAgIGdncGxvdChhZXMoeCA9IG1vc3F1aXRvX3NwZWNpZXMsIHkgPSBuLCBmaWxsID0gbG9jYXRpb25fcG9vbCkpICsNCiAgICBnZW9tX2NvbCgpICsNCiAgICBmYWNldF9ncmlkKC4gfiBjb2xsZWN0aW9uX3llYXIpICsNCiAgICBzY2FsZV9maWxsX3ZpcmlkaXNfZCgiTG9jYXRpb24iLCBvcHRpb24gPSAibWFnbWEiKSArDQogICAgdGhlbWVfYncoKSArDQogICAgbGFicyh0aXRsZSA9IHBhc3RlMCgiTnVtYmVyIG9mIFZpcnVzIERldGVjdGlvbnMiKSwNCiAgICAgICBzdWJ0aXRsZSA9IHBhc3RlMCgiRm9yICIsIHZpcnVzLCAiIGJ5IFllYXIsIFNwZWNpZXMgYW5kIExvY2F0aW9uIikpICsNCiAgICB0aGVtZShwbG90LnRpdGxlID0gZWxlbWVudF90ZXh0KHNpemUgPSAxNiwgZmFjZSA9ICJib2xkIiksDQogICAgICAgIGF4aXMudGl0bGUueCA9IGVsZW1lbnRfYmxhbmsoKSwNCiAgICAgICAgYXhpcy50ZXh0LnggPSBlbGVtZW50X3RleHQoYW5nbGUgPSA0NSwgdmp1c3QgPSAwLjUpKQ0KICApKQ0KICANCiAgY2F0KCdcblxuIyMjJywgJ1llYXJzIHsudW5saXN0ZWQgLnVubnVtYmVyZWR9JywgJ1xuXG4nKQ0KDQogIHByaW50KGh0bWx0b29sczo6dGFnTGlzdCgNCiAgICB2aXJ1c19tYXN0ZXJfMjAyMyAlPiUgDQogICAgICBmaWx0ZXIodmlydXNfbmFtZSA9PSB2aXJ1cykgJT4lIA0KICAgICAgZ3JvdXBfYnkoY29sbGVjdGlvbl95ZWFyKSAlPiUgDQogICAgICBzdW1tYXJpc2UobiA9IG5fZGlzdGluY3Qoc2FtcGxlX251bWJlcikpICU+JSANCiAgICAgIGd0KCkgJT4lIA0KICAgICAgY29sc19sYWJlbChjb2xsZWN0aW9uX3llYXIgPSAiWWVhcihzKSBEZXRlY3RlZCIpDQogICAgKSkNCiAgDQogIGNhdCgnXG5cbiMjIycsICdMb2NhdGlvbnMgey51bmxpc3RlZCAudW5udW1iZXJlZH0nLCAnXG5cbicpDQogIA0KICAgIHByaW50KGh0bWx0b29sczo6dGFnTGlzdCgNCiAgICB2aXJ1c19tYXN0ZXJfMjAyMyAlPiUgDQogICAgICBmaWx0ZXIodmlydXNfbmFtZSA9PSB2aXJ1cykgJT4lIA0KICAgICAgZ3JvdXBfYnkobG9jYXRpb25fcG9vbCkgJT4lIA0KICAgICAgc3VtbWFyaXNlKG4gPSBuX2Rpc3RpbmN0KHNhbXBsZV9udW1iZXIpKSAlPiUgDQogICAgICBndCgpICU+JSANCiAgICAgIGNvbHNfbGFiZWwobG9jYXRpb25fcG9vbCA9ICJMb2NhdGlvbihzKSBEZXRlY3RlZCIpDQogICAgKSkNCiAgICANCiAgICBjYXQoJ1xuXG4jIyMnLCAnTW9zcXVpdG8gU3BlY2llcyB7LnVubGlzdGVkIC51bm51bWJlcmVkfScsICdcblxuJykNCiAgDQogICAgcHJpbnQoaHRtbHRvb2xzOjp0YWdMaXN0KA0KICAgIHZpcnVzX21hc3Rlcl8yMDIzICU+JSANCiAgICAgIGZpbHRlcih2aXJ1c19uYW1lID09IHZpcnVzKSAlPiUgDQogICAgICBncm91cF9ieShtb3NxdWl0b19zcGVjaWVzKSAlPiUgDQogICAgICBzdW1tYXJpc2UobiA9IG5fZGlzdGluY3Qoc2FtcGxlX251bWJlcikpICU+JSANCiAgICAgIGd0KCkgJT4lIA0KICAgICAgY29sc19sYWJlbChtb3NxdWl0b19zcGVjaWVzID0gIk1vc3F1aXRvIEhvc3RzIikNCiAgICApKQ0KICAgIA0KICAgIGNhdCgnXG5cbiMjIycsICdDb250aWcgU3VtbWFyeSB7LnVubGlzdGVkIC51bm51bWJlcmVkfScsICdcblxuJykNCg0KICB2aXJ1c19wcm9maWxlX3RhYmxlKHZpcnVzKQ0KICANCiAgcHJpbnQoaHRtbHRvb2xzOjp0YWdMaXN0KHZpcnVzX3RhYmxlKSkNCiAgDQogIGNhdCgnXG5cbiMjIycsICdhYSBJZGVudGl0eSBTdW1tYXJ5IHsudW5saXN0ZWQgLnVubnVtYmVyZWR9JywgJ1xuXG4nKQ0KICANCiAgcHJpbnQoc3VwcHJlc3NNZXNzYWdlcygNCiAgdmlydXNfbWFzdGVyXzIwMjMgJT4lIA0KICAgIGZpbHRlcih2aXJ1c19uYW1lID09IHZpcnVzKSAlPiUgDQogICAgc2VsZWN0KC0iY29udGlnX3NlcXVlbmNlIikgJT4lIA0KICAgIGdncGxvdChhZXMoeCA9IGdyZWF0ZXN0X2lkZW50aXR5X3BlcmNlbnQpKSArDQogICAgZ2VvbV9oaXN0b2dyYW0oYWVzKGZpbGwgPSBncmVhdGVzdF9pZGVudGl0eV9wZXJjZW50IDwgOTApKSArDQogICAgZ2VvbV92bGluZSh4aW50ZXJjZXB0ID0gOTAsIGxpbmV0eXBlID0gImRvdHRlZCIsIGNvbG91ciA9ICJmaXJlYnJpY2siKSArDQogICAgdGhlbWVfYncoKSArDQogICAgbGFicyh0aXRsZSA9IHBhc3RlMCgiYWEgSWRlbnRpdHkiKSwNCiAgICAgICBzdWJ0aXRsZSA9IHBhc3RlMCgiRm9yICIsIHZpcnVzKSwNCiAgICAgICB4ID0gImFhIElkZW50aXR5IiwgDQogICAgICAgeSA9ICJOdW1iZXIgb2YgQ29udGlncyIpICsNCiAgICB0aGVtZShwbG90LnRpdGxlID0gZWxlbWVudF90ZXh0KHNpemUgPSAxNiwgZmFjZSA9ICJib2xkIiksDQogICAgICAgIGF4aXMudGl0bGUueCA9IGVsZW1lbnRfYmxhbmsoKSwNCiAgICAgICAgYXhpcy50ZXh0LnggPSBlbGVtZW50X3RleHQoYW5nbGUgPSA0NSwgdmp1c3QgPSAwLjUpKSArDQogICAgdGhlbWUobGVnZW5kLnBvc2l0aW9uID0gIm5vbmUiKQ0KICApKQ0KICANCn0NCg0KDQpgYGA=